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

2020-02-05 09:04发布

本帖最后由 lidakemaki 于 2012-6-15 09:45 编辑

大家好,如题。

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

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

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

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


其实我想问的问题是:

在单片机中,接收中断里调用2个函数,处理数据,并且在接收中断没有退出的情况下,申请发送中断。这样的做法,会不会造成单片机“死机”和函数处理数据不正确(数据结果一定)(函数一定是没问题的,因为我拿出中断来执行,数据都OK)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
lidakemaki
1楼-- · 2020-02-06 06:28
lcw_swust 发表于 2012-6-15 09:59
//FIFO工作模式
#define DTYPE INT16S
//数据类型

谢谢你的回答,
但是并没有回答我的问题。。。。。

我是想问在单片机中,在接收中断里调用了2个处理数据的函数,然后在接收中断没有退出的情况下,申请发送中断,会不会导致单片机死机或则函数结果不正确的现象。(前面提出的问题我已经从新编辑过了)

我找的不是解决方法和代码,谢谢你。
lidakemaki
2楼-- · 2020-02-06 06:29
 精彩回答 2  元偷偷看……
lcw_swust
3楼-- · 2020-02-06 10:14
lidakemaki 发表于 2012-6-15 10:13
谢谢你的回答,
但是并没有回答我的问题。。。。。

不知楼主用的哪种单片机?哪种编译器?
mored
4楼-- · 2020-02-06 15:38
可以,逻辑处理对了就行
lidakemaki
5楼-- · 2020-02-06 16:00
lcw_swust 发表于 2012-6-15 10:29
不知楼主用的哪种单片机?哪种编译器?

我用的是STC11系列的单片机,编译器是 韦弗。
lcw_swust
6楼-- · 2020-02-06 16:01
lidakemaki 发表于 2012-6-15 12:00
我用的是STC11系列的单片机,编译器是 韦弗。

我用KEIL,不会死机

一周热门 更多>