打印

串口通讯问题?

[复制链接]
1491|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
7120223|  楼主 | 2009-11-27 12:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个单片机A,B..A的是靠中断来收发的,A发数据给B,在一定时间内如果B没有回,数据报错。B原来是用中断来接受数据,主程序来发送数据的,如果程序量很小的话发送没有问题,但是现在主程序功能较多了,B发数据就和A不协调了,老是报错。后来我把A发送也放在中断里面了。主程序没有加其他功能收发一切正常,但是一旦把主程序程序都加上来运行,中断发送又出现报错了。。B的接受数据一切正常。按照道理来说,用串口中断来收发数据的话,是不受主程序的影响的啊,但是为什么这里又有影响了呢???

相关帖子

沙发
cool_coder| | 2009-11-27 16:02 | 只看该作者
看看CPU占用率, 另外有没有更高级的中断频繁打入, 主程序里有没有关中断操作, 发送缓冲区有没有被主程序或其它中断破坏等等...
功能多不一定占用CPU时间长, 可能哪里出问题了.

使用特权

评论回复
板凳
7120223|  楼主 | 2009-11-27 16:14 | 只看该作者
整个程序只是开了一个串口中断???但是 发送缓冲区有没有被主程序?这个怎么检查
data占用了100.1  单片机是 52的

使用特权

评论回复
地板
chunyang| | 2009-11-27 16:51 | 只看该作者
程序结构不合理所致,开启多中断源的话要设置好优先权,中断处理程序不能太复杂,将缓冲中的数据转移到内存中并设置一个标志,主程序的任务调度根据该标志来进行进一步的处理。

使用特权

评论回复
5
7120223|  楼主 | 2009-11-30 11:01 | 只看该作者
问题找到了,原来是 同一个系统中 我设立的数据标志和以前的数据标志一样了,导致数据互串了。
嘿嘿 感谢上面的朋友么出点子

使用特权

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

本版积分规则

105

主题

389

帖子

0

粉丝