我用串口调试助手发送一个16进制的数组,共8位(00 03 00 61 00 01 d4 05)。这是单片机接受串口信息的程序,
void se() interrupt 4
{
REN = 0;
RI = 0;
uart[num_uart] = SBUF;
num_uart ++;
if( num_uart == 8)
{
flag = 1;
num_uart = 0;
}
REN = 1;
}
可为什么不对呢。
这样你试下,还有不对是哪里不对要说明白!
追问谢谢大哥,我有点明白了,我还有两个问题:
我写的程序是接收到8个字节后led灯亮一下,但如果我烧完程序,不断电接着发送字节,会发送7个字节led就亮一下。可如果烧完程序断电再重新上电后,就可以接到8个字节后led亮一下。
单片机接到8个字节(00 03 00 61 00 01 d4 05)后,存放在uchar uart[8]。
就是要注意控制num_uart这个变量
本回答被提问者采纳不是16位的啊,是16进制啊,共8个字节(00 03 00 61 00 01 d4 05)
不是16位的啊,是16进制啊,共8个字节(00 03 00 61 00 01 d4 05)
追答哦 我看错了 不对是哪里不对呢
追问我写的程序是接收到8个字节后led灯亮一下,但如果我烧完程序,不断电接着发送字节,会发送7个字节led就亮一下。可如果烧完程序断电再重新上电后,就可以接到8个字节后led亮一下。
单片机接到8个字节(00 03 00 61 00 01 d4 05)后,存放在uchar uart[8]。
你把程序发给我看一下吧