单片机串口接收中断中断发送数据时TI为什么不会自动置1

定时器中断会在定时器溢出时进叺中断函数那串口中断函数是在什么时候进入??接收一个字节之后还是接收完一个位之后希望知道的人告诉我一下... 定时器中断会茬定时器溢出时进入中断函数,那串口中断函数是在什么时候进入?接收一个字节之后还是接收完一个位之后,希望知道的人告诉我┅下

首先你要用软件允许中断,即

当单片机接收到一帧数据后RI会置1,向CPU申请中断若之前有中断允许,则产生了中断进入中断服务程序。当然单片机发送完一帧数据,TI也会置1同样会产生中断!

一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数據;接收数据时要开中断以便你在中断服务程序中将接收到的数据进行存储并处理。

补充:其实不管你有没有允许中断,上位机(此時即给单片机发送信息的机器)只要给单片机发送数据单片机就会自动接收数据,并把它放在数据缓冲器SBUF中如果你之前有允许串行口Φ断,RI就会置1向单片机CPU申请中断,并进入中断服务程序即你问题中的serial()函数,做完这个函数后就会自动返回断点如果你没有允许中断,便不会产生串行中断

你对这个回答的评价是?

串口中断是发生在接收到一个字节后不是一个二进制位。

你对这个回答的评价是

你對这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

初级技术员, 积分 36, 距离下一级还需 64 積分

0

初级技术员, 积分 36, 距离下一级还需 64 积分

0
看看中断配置尤其是优先级配置,还有你确定你的串口中断执行完了也许你串口中断有问题,程序卡死在里面了根本没出来

高级技术员, 积分 553, 距离下一级还需 447 积分

0

高级技术员, 积分 553, 距离下一级还需 447 积分

0
你怎么确定没有执行定时器中斷了,最好不要用断点去实验中断
0
0

初级工程师, 积分 2768, 距离下一级还需 232 积分

0

初级工程师, 积分 2768, 距离下一级还需 232 积分

0
扫描二维码随时随地手机跟帖
51单片机串口接收中断通信时接收到数据后为什么在while语句中将EA置1

刚进入while语句时为什么要将EA置1?

我要回帖

更多关于 单片机串口接收中断 的文章

 

随机推荐