定时器中断会在定时器溢出时进入中断函数,那串口中断函数是在什么时候进入???接收一个字节之后还是接

定时器中断会在定时器溢出时进入中断函数,那串口中断函数是在什么时候进入???接收一个字节之后还是接收完一个位之后,希望知道的人告诉我一下... 定时器中断会在定时器溢出时进入中断函数,那串口中断函数是在什么时候进入???接收一个字节之后还是接收完一个位之后,希望知道的人告诉我一下 展开
 我来答
挡务求睦br
2014-12-04 · 超过11用户采纳过TA的回答
知道答主
回答量:23
采纳率:100%
帮助的人:15.3万
展开全部
首先,你要用软件允许中断,即
C语言中
EA = 1; //允许总中断
ES = 1; //允许串口中断
汇编中可用
SETB EA ;允许总中断
SETB ES ;允许串口中断

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

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

补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器SBUF中,如果你之前有允许串行口中断,RI就会置1,向单片机CPU申请中断,并进入中断服务程序,即你问题中的serial()函数,做完这个函数后就会自动返回断点。如果你没有允许中断,便不会产生串行中断。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查晓筠0i5
2014-12-03 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4979万
展开全部
需要帮你写程序吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中国欧软
推荐于2016-02-27 · TA获得超过145个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:103万
展开全部
串口中断是发生在接收到一个字节后,不是一个二进制位。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式