我有一个在 UART 上接收 8 字节数据的函数,我正在使用其中一个数据字节,我读取该数据字节并调用一个函数来调制我将要使用的 MP3 编解码器的音量。设置音量的 MP3 编解码器功能有点奇怪,它将声音设置为好像输入是 0x00,100% 音量,如果它恰好是 0x64,那么它的 0%。
现在,LabVIEW固件设置(由团队中的其他开发人员)以这样的方式设置,如果它想将音量设置为100%,那么它通过UART发送0x64和0%的0x00到数据字节正如我上面所说的,我将要阅读。
为了避免这篇文章的复杂性,我尝试做的是实现一个简单的 C 代码,该代码将从控制台获取输入并打印处理后的输出。假设输入是 0x00,那么输出应该是 0x64,如果输入恰好是 0x64,那么输出应该是 0x00。以下是我编写的代码,其中我收到错误消息:
Disallowed system call: SYS_socketcall
下面的代码可能看起来非常低效且非常基础,但这是为了便于理解。
int main(void)
{
int input = 0x00, output = 0x00, i = 0x00, j = 0x64, var = 0x00;
int in_arr[100], out_arr[100];
for(i = 0x00; i < 0x65; i++, j--)
{
out_arr[i] = j;
in_arr[i] = i;
}
printf("Input : ");
scanf("%x",&input);
for(var = 0x00; var < 0x64; var++)
{
if(input == in_arr[var])
{
output = out_arr[var];
printf("0x%x",output);
break;
}
}
return 0;
}