[PIC®/AVR®/dsPIC®产品] RS485的串口接收数据问题

[复制链接]
1921|8
 楼主| w32831973 发表于 2013-11-1 16:15 | 显示全部楼层 |阅读模式
本帖最后由 w32831973 于 2013-11-5 17:51 编辑

程序已经测试过了,可以接收一位数据和发送一位数据,配置都没问题了。然后我想接收一串数据,然后再返回到PC上,我发了一串8个字符,经检验,可以接收到8个字符,保存在ReceiveData【】中,然后再赋值在发送缓冲数组SendData【】里,但是发现PC里只接收到1个字符,或者2个字符,而且全是FF,但是我看了下发送寄存器的值,就是我接收到的值,这是什么原因呢?附上截图,请各位帮我好好看看什么原因?补充:发送的数据
是01 03 00 01 00 05 D4 09

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dengboliduo 发表于 2013-11-3 20:20 | 显示全部楼层
波特率比较低吧,发送数据之间延时2ms试一下呢 应该就没问题了的 或者用示波器看一下发送两个数据之间是不是波形有叠加
 楼主| w32831973 发表于 2013-11-5 09:46 | 显示全部楼层
试了一下,还是不行,是不是接收寄存器RC2REG里还有值就发送不了那么快呢?接收完一串数据,RC2REG不是应该为0吗,怎么还是接收的最后一个数据?
kamen588 发表于 2013-11-14 10:02 | 显示全部楼层
每个 字节 之间延时1ms
zzqnysafe 发表于 2013-11-14 10:46 | 显示全部楼层
没仔细看哈,你的while(1)是包含到哪个地方啊,怎么感觉后面的发送和接受没在主循环里呢,还是你放在中中断里了
zzqnysafe 发表于 2013-11-14 10:49 | 显示全部楼层
还有就是那个IF(TXIE&&TXIF)这个是怎么成立的啊 不是还没往发送寄存器放数嘛
兰天白云 发表于 2013-11-14 14:58 | 显示全部楼层
搞通讯,特别是单片机通讯,要静下心来仔仔细细看资料,彻底理解后再动手
Rain_King 发表于 2013-11-18 13:50 | 显示全部楼层
其实我觉得你的系统结构有点不合理吧,简单的应用可以这么写,复杂的最好还是换一个结构吧....
huasanshao0206 发表于 2013-11-18 21:44 | 显示全部楼层
while(TX2IF)改成if或不要,然后在后面加个延时试试。用的什么片子啊?在接收的时候检测TRMT?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部