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

STM32-ucosii中的串口中断

[复制链接]
z00 发布时间:2015-1-6 21:35
先看邵老师的书中怎么写
STM32学习记录14 ucosii中的串口中断 - zmurder - 起点的博客
里面写到:μC/OS中,中断服务子程序要用汇编语言来写。然而,如果用户使用的C语言编译器支持在线汇编语言的话,用户可以直接将中断服务子程序代码放在C语言的程序文件中。
再看《M3权威指南》2.11.2节与9.11节中讲到Cortex-M3在进入异常时自动压栈。。。。返回时自动出栈,再也不需要汇编语言编写了。也就是说我们可以使用C语言来编写中断服务程序。并且省去了上面程序清单的(1)(5)(6).
其实ucos中的终端和裸奔的中断写法基本一致,只是加了几条语句,如下为串口中断的写法:
  1. void USART1_IRQHandler(void)
  2. {
  3.     uint8_t RxData;

  4.     OS_CPU_SR  cpu_sr;
  5.     OS_ENTER_CRITICAL();                        
  6.     OSIntNesting++;
  7.     OS_EXIT_CRITICAL();
  8.      if(USART_GetITStatus(USART1, USART_IT_RXNE )==SET)//接收中断
  9.      {
  10.              USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清楚接收中断标志位
  11.              RxData = USART_ReceiveData(USART1); //接收数据
  12.              if(RxData!=0)//字符串接收完毕
  13.              {
  14.                     Usart1RXArray[Usart1RXLen++]=RxData;
  15.              }
  16.      }
  17.      OSIntExit();                                
  18. }
复制代码


收藏 评论0 发布时间:2015-1-6 21:35

举报

0个回答

所属标签

STM32团队

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


最新内容

相似技术帖

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