单片机串口通信 只能发送第一位

发布网友 发布时间:2022-04-21 18:13

我来回答

3个回答

热心网友 时间:2024-06-03 13:21

程序中发送数据是的语句是:sbuf=a[p][q];
,这数组是字符吗?还是二进制数?这决定单片机发送的数据格式是什么样的,是字符就是发送ascii码,否则发送的二进制数(即十六进制)。上位机是用串口调试助手接收的,还是用超级终端接收的,用超级端终接收时需要发送ascii码才能显示出来,发送二进制数就会显示乱码的。而串口调试助手可以接收并显示十六进制数,但需要在“十六进制显示”上打勾。

热心网友 时间:2024-06-03 13:23

楼主的编程思路,只是适合于编写单字节的串口通信。

多字节的,参考:

http://hi.baidu.com/do_sermon/item/bfe96e2a46eafc13097508ee

热心网友 时间:2024-06-03 13:20

void ser() interrupt 4
{
if(RI)
{
a=SBUF;
RI=0;
flag=0;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com