你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

单片机串行口中止程序说明

[复制链接]
天师猫神 发布时间:2020-7-12 14:58
首要,你要用软件容许中止,

          即C言语中EA = 1; 容许总中止ES = 1;


          //容许串口中止汇编中可用


          SETB EA ;容许总中止


          SETB ES ;容许串口中止


          当单片机接纳到一帧数据后,RI会置1,向CPU恳求中止,若之前有中止容许,则发作了中止,进入中止效劳程序。


          当然,单片机发送完一帧数据,TI也会置1,相同会发作中止!


          通常咱们在发送数据时要关中止,由于通常你不必在发送时不必处理数据;


          接纳数据时要开中止,以便你在中止效劳程序中将接纳到的数据进行存储并处理。


          


          抵偿:正本,不论你有没有容许中止,上位机(此刻即给单片机发送信息的机器)只需给单片机发送数据,单片机就会主动接纳数据,并把它放在数据缓冲器SBUF中,假定你之前有容许串行口中止,RI就会置1,向单片机CPU恳求中止,并进入中止效劳程序,做完中止函数后就会主动回来断点。假定你没有容许中止,便不会发作串行中止。正本,其他中止都是某个I/O口电平改动发作。这仅仅外部中止发作条件,不过,你之前也需求用软件容许外部中止。


          其他,多见的51系列单片机有5个中止源三种中止5:


          1、外部中止0和1;


          2、守时器/计数器溢出中止0和1;


          3、串行口中止。


          其他,STC51系列还有守时器/计数器T2中止,A/D改换中止,PWM中止,串行中止2等等。你还有啥不了解的能够自个多翻一翻书,学到后边去了你就了解了。


          中止效劳程序中,那条 RI=0;是不行少的,这是用软件清零RI,预备再次承受一帧数据发作中止,假定你没有这条句子,就会进入死循环,出不来了。


          void serial() interrupt 4


          { P1=SBUF;


          RI=0;


          }



收藏 评论0 发布时间:2020-7-12 14:58

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版