关于单片机串口中断问题,请教。

[复制链接]
3320|9
 楼主| lidake 发表于 2012-6-14 16:40 | 显示全部楼层 |阅读模式
本帖最后由 lidake 于 2012-6-15 09:20 编辑

大家好,如题。

不知道大家有没有遇到一种情况,就是单片机做“中转站”,把接收到的数据再发出去。

当然我知道可以用扫描的方法实现。

但是今天我试验了,用中断的方法,大意是接收到一组数据后,在接收中断中直接调用2个处理数据的函数,数据处理完毕,又在接收中断里,启动了发送中断。我这样试验后,发现时不时的会死机,而且有时数据处理明显不正确(因为处理后的结果都一样了!)。

请问,确实不能这样写吗?

其实我是想问,在接收中断里调用一些函数,并且在接收中断没有退出的情况下,申请发送中断,会偶尔造成死机和正常函数数据不对(结果固定)(函数绝对没问题,拿到中断外就一切OK)等现象吗?
jin1song 发表于 2012-6-14 16:55 | 显示全部楼层
在主程序中用查询方式试试。
ningling_21 发表于 2012-6-14 20:17 | 显示全部楼层
应该是程序的问题...
 楼主| lidake 发表于 2012-6-15 09:17 | 显示全部楼层
你的意思是,单片机中,接收中断未完全退出的时候,申请发送中断是可以的? 3# ningling_21
 楼主| lidake 发表于 2012-6-15 09:19 | 显示全部楼层
其实我是想问,在接收中断里调用一些函数,并且在接收中断没有退出的情况下,申请发送中断,会偶尔造成死机等现象吗? 2# jin1song
ningling_21 发表于 2012-6-15 10:35 | 显示全部楼层
你的意思是,单片机中,接收中断未完全退出的时候,申请发送中断是可以的? 3# ningling_21
lidake 发表于 2012-6-15 09:17


只要串口是全双工的,发送和接收可以同时进行互不影响...
 楼主| lidake 发表于 2012-6-16 10:28 | 显示全部楼层
会不会是中断嵌套,然后又调用函数引起的问题??? 6# ningling_21
mage心寒 发表于 2012-6-16 10:35 | 显示全部楼层
发送不要用中断,接收用中断就好了。。
 楼主| lidake 发表于 2012-6-16 10:56 | 显示全部楼层
是这样的,我这里对接收过来的数据很铭感,希望接收完毕后,在没执行其他语句前,马上就发出去,所以,我就把发送中断申请在接收中断里面了。为了接收中断完毕后,不走其他语句,马上发送。 8# mage心寒
 楼主| lidake 发表于 2012-6-17 13:31 | 显示全部楼层
自己顶一下,希望大家多发言,多交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

90

帖子

0

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