打印

PIC16f886串口接收数据出现问题求助

[复制链接]
3164|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hyuan|  楼主 | 2010-5-11 09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近调试一个PIC16F886串口的收发通信,发送数据完全正确,在串口调试助手下进行发送,PIC接收,每次只能最多只能发出3个字符,PIC接收是正确的,一超出3个就会出现接收错误,哪位高手对PIC这一块比较熟悉,望不吝赐教,谢谢。
沙发
yewuyi| | 2010-5-11 09:53 | 只看该作者
有关UART的几点简单注意项:
1、检查OSC的频率是否正确?
2、检查波特率是否设置正确?
3、检查数据格式是否设置正确?
4、检查中断进入/退出和数据读/写是否正确?
5、对于接受来说,必须是中断方式才能确保不丢数,任何形式的查询方式都可能会产生丢数的问题。
6、检查接受时读取和处理数据的速度是否比发送方发送的速度慢,而且又没有采用缓冲的方式?

使用特权

评论回复
板凳
yewuyi| | 2010-5-11 09:54 | 只看该作者
仔细检查自己的代码,这个问题只能是你的代码有问题。

使用特权

评论回复
地板
歪 歪| | 2010-5-11 10:08 | 只看该作者
建议用专业工具配合你调试,也许你被串口助手误导了。

下载地址:
http://download.cnet.com/ComTrac ... 6892.html?tag=mncol

感觉好别忘了给个review(评论),谢谢!

使用特权

评论回复
5
hyuan|  楼主 | 2010-5-11 10:26 | 只看该作者
多谢楼上两位了,现在测出老是出现溢出错误,手册上说,The receive FIFO buffer can hold two characters. Anoverrun error will be generated If a third character, in its entirety, is received before the FIFO is accessed. When this happens the OERR bit of the RCSTA register is set.
要是在访问FIFO之前接收到了完整的三个字符,将会产生溢出错误,现在问题很有可能是yewuyi老大说的第6点原因,多谢了,

使用特权

评论回复
6
hyuan|  楼主 | 2010-5-11 10:40 | 只看该作者
YE工,能不能提供6、检查接受时读取和处理数据的速度是否比发送方发送的速度慢,而且又没有采用缓冲的方式? 相关的案例呢,多谢多谢

使用特权

评论回复
7
yewuyi| | 2010-5-11 11:46 | 只看该作者
自己直接GOOGLE搜把,网络上有大把的CASE讲解这个问题的。

使用特权

评论回复
8
KF_3C| | 2010-5-13 14:08 | 只看该作者
我用的是887,遇到同样的问题,郁闷……

使用特权

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

本版积分规则

0

主题

11

帖子

1

粉丝