Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
声明十六进制字符';错误:多字符字符常量';在c中_C_Hex_Uart - Fatal编程技术网

声明十六进制字符';错误:多字符字符常量';在c中

声明十六进制字符';错误:多字符字符常量';在c中,c,hex,uart,C,Hex,Uart,在下面的函数中,我从UART读取两字节十六进制字符。我试图检测数据的开头,它是十六进制字符FF。编译器正在给出错误错误:多字符字符常量。我应该如何声明FF void getData(void) { int i; static uint8_t detectedStartChar = 0; int buffans[264]; int retchar; for (i = 0; i < 264; i++) { retchar = getc

在下面的函数中,我从UART读取两字节十六进制字符。我试图检测数据的开头,它是十六进制字符
FF
。编译器正在给出错误
错误:多字符字符常量
。我应该如何声明
FF

void getData(void) {
    int i;
    static uint8_t detectedStartChar = 0;
    int buffans[264]; 
    int retchar;

    for (i = 0; i < 264; i++) {
        retchar = getch(UART_0);
        if (retchar == 'DD') {
            detectedStartChar = 1;
            buffans[i] = retchar;
        }
    }
}
void获取数据(void){
int i;
静态uint8\u t检测到的STARTCHAR=0;
int buffans[264];
int-retchar;
对于(i=0;i<264;i++){
retchar=getch(UART_0);
如果(retchar='DD'){
检测到的StartChar=1;
buffans[i]=retchar;
}
}
}

如注释中所述,修复程序包括:-

if (retchar == 0xff ){ /* compare the value */

if (retchar == '\xff' ){ /* compare the character representation */

引号用于单个字符。0x代表十六进制表示法中的文字。将
retchar=='FF'
更改为
retchar==0xff
@MargaretBloom和@nsilent22,谢谢,我还得到了错误
error:variable'buffans'集,但未使用
但它在if循环中使用?您正在设置此变量,但以后不会在任何地方使用它。那么编译器会问你为什么要这样做?@nsilent22但是我在
if循环中使用它,我在数组中放入
retchar
?这不对吗?