51单片机串口接收数组 s

下位机收到的一直不是正确的,请高人解决下
2025-01-02 23:38:24
推荐回答(2个)
回答1:

uchar a = 0;

把这一行,定义为全局变量,即放在程序的最前面。

否则,无论中断多少次,a 总是 0。

回答2:

void UartRec() interrupt 4
{
static unsigned char Count;
if (RI)
{
RI = 0;
buf[Count++] = SBUF;
}
mc = buf[0] - '0'; //mc = buf[0] - 0x30;
n = buf[1] - '0'; //n = buf[1] - 0x30;
if (Count >= 1)
{
Count = 0;
}
}