STM8S和STM8L調試串口中斷的注意點


1. STM8L串口中斷注意點
在調試PM2.5傳感器GP2Y1051的時候,發現在仿真的時候開始能夠進行數據的接受,但是如果暫停之后就不能接受數據,其實只是接收了一次完整的數據。

問題程序

解決方法

 
 
 
         
  1. if(USART_GetITStatus(USART1, USART_IT_RXNE))
  2. {
  3. RecevieData = USART_ReceiveData8(USART1);
  4. switch(state_machine)

2. STM8S串口中斷注意點
征對STM8S003F3或者103系列等單片機,由於其余其他單片機不一樣,串口接收中斷中有ORE,即過載錯誤,收中斷;如圖:

故需要在串口接收中斷中做如下處理:

 
 
 
         
  1. if(UART2->SR & UART2_SR_OR)
  2. {
  3. UART2->SR &= ~UART2_SR_OR;
  4. UART2->SR &= ~UART2_SR_RXNE;
  5. u8RevDat=UART2_ReceiveData8();
  6. }
  7. else
  8. u8RevDat=UART2_ReceiveData8();
  9. RecevieData = u8RevDat;





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM