<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > STM32-ucosii中的串口中斷

          STM32-ucosii中的串口中斷

          作者: 時間:2016-11-21 來源:網絡 收藏
          μC/OS中,中斷服務子程序要用匯編語言來寫。然而,如果用戶使用的C語言編譯器支持在線匯編語言的話,用戶可以直接將中斷服務子程序代碼放在C語言的程序文件中。
          再看《M3權威指南》2.11.2節(jié)與9.11節(jié)中講到Cortex-M3在進入異常時自動壓棧。。。。返回時自動出棧,再也不需要匯編語言編寫了。也就是說我們可以使用C語言來編寫中斷服務程序。并且省去了上面程序清單的(1)(5)(6).
          其實ucos中的終端和裸奔的中斷寫法基本一致,只是加了幾條語句,如下為串口中斷的寫法:
          void USART1_IRQHandler(void)
          {
          uint8_t RxData;
          OS_CPU_SR cpu_sr;
          OS_ENTER_CRITICAL();
          OSIntNesting++;
          OS_EXIT_CRITICAL();
          if(USART_GetITStatus(USART1, USART_IT_RXNE )==SET)//接收中斷
          {
          USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清楚接收中斷標志位
          RxData = USART_ReceiveData(USART1); //接收數據
          if(RxData!=0)//字符串接收完畢
          {
          Usart1RXArray[Usart1RXLen++]=RxData;
          }
          }
          OSIntExit();
          }
          紅色為與裸奔相比添加的代碼。中斷服務程序的函數名也不用改變。


          關鍵詞: STM32ucosii串口中

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();