打印
[其它应用]

发送一组串口数据后面会多出一个0x00的数据

[复制链接]
699|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2017-9-9 21:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用79F166做RS485控制,发送一组串口数据后面会多出一个0x00的数据。
沙发
llia| | 2017-9-9 22:01 | 只看该作者
看看你得程序吧

使用特权

评论回复
板凳
yufe|  楼主 | 2017-9-9 22:54 | 只看该作者

void UartSendByte(unsigned char dat)
{
     
    EA    =    0;
     SBUF=dat;
     while(TI==0) ;
     TI=0;
     EA    =    1;

使用特权

评论回复
地板
wangpe| | 2017-9-10 16:11 | 只看该作者
发送和接受都是咋样的

使用特权

评论回复
5
yufe|  楼主 | 2017-9-10 16:24 | 只看该作者

主程序中发送:
          UartSendByte(0xff);
          UartSendByte(0x01);
          UartSendByte(0x00);
          UartSendByte(0x04);
          UartSendByte(0xff);
          UartSendByte(0x00);
          UartSendByte(0x04);
串口工具收到:
FF 01 00 04 FF 00 04 00
FF 01 00 04 FF 00 04 00
FF 01 00 04 FF 00 04 00
FF 01 00 04 FF 00 04 00

使用特权

评论回复
6
langgq| | 2017-9-10 16:25 | 只看该作者
你看你的tx引脚有没有上拉,还有就是tx对应的pin初始化的时候是不是初始化成了输出且输出0,如果是这样,每次发送多会多出一个0,改成初始化输出1 就好了

使用特权

评论回复
7
wangpe| | 2017-9-10 16:27 | 只看该作者

发送时,必须先将输出口置高电平

使用特权

评论回复
8
yufe|  楼主 | 2017-9-10 16:28 | 只看该作者
谢谢,确实是这样,已经改好了。

使用特权

评论回复
9
zhuww| | 2017-9-10 16:30 | 只看该作者
大神 对于单片机串口也是这样吗 我把单片机P3^0 P3^1置低后 便不能正常收发数据了  但是实际中这两个IO口是复用的  我确实需要将其置低 有和解决办法吗

使用特权

评论回复
10
yufe|  楼主 | 2017-9-10 16:34 | 只看该作者
好了,先结贴了哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

983

主题

10170

帖子

1

粉丝