打印
[PIC®/AVR®/dsPIC®产品]

RS485的串口接收数据问题

[复制链接]
1530|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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

使用特权

评论回复
5
zzqnysafe| | 2013-11-14 10:46 | 只看该作者
没仔细看哈,你的while(1)是包含到哪个地方啊,怎么感觉后面的发送和接受没在主循环里呢,还是你放在中中断里了

使用特权

评论回复
6
zzqnysafe| | 2013-11-14 10:49 | 只看该作者
还有就是那个IF(TXIE&&TXIF)这个是怎么成立的啊 不是还没往发送寄存器放数嘛

使用特权

评论回复
7
兰天白云| | 2013-11-14 14:58 | 只看该作者
搞通讯,特别是单片机通讯,要静下心来仔仔细细看资料,彻底理解后再动手

使用特权

评论回复
8
Rain_King| | 2013-11-18 13:50 | 只看该作者
其实我觉得你的系统结构有点不合理吧,简单的应用可以这么写,复杂的最好还是换一个结构吧....

使用特权

评论回复
9
huasanshao0206| | 2013-11-18 21:44 | 只看该作者
while(TX2IF)改成if或不要,然后在后面加个延时试试。用的什么片子啊?在接收的时候检测TRMT?

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝