我正在使用C并尝试与处理串行通信的设备进行通信。我正在读取一个字节并将其存储在一个数组中,然后将数组元素检查到'\0'
(0x00
)。如果它是'\0'
那么这意味着数据现在不可用。
volatile int rxFlag = 0;
volatile int index = 0;
void function() //event based function, whenever a byte is received
{
Rx[index] = ReadUSART(); //reading a byte
if(Rx[index] == '\0' ) //checking if its null
{
rxFlag = 1; //raise a flag
}
index++; //increment index
}
以下是Rx的屏幕截图:
在图片中,您可以看到Rx[0]-Rx[24]
它包含数据但Rx[25]
是空终结符(0x00
),而rxFlag
应设置为1。它没有设定。
检查数组元素是否为'\0'
的另一种方法是什么。
答案 0 :(得分:3)
分配rxFlag时会出现拼写错误。
rxFlag == 1;
应该是
rxFlag = 1;