在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 調(diào)試STM8/stm32串口時(shí)發(fā)現(xiàn)的問(wèn)題

      調(diào)試STM8/stm32串口時(shí)發(fā)現(xiàn)的問(wèn)題

      作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
      描述:串口中斷1用來(lái)接收到的數(shù)據(jù),我是用串口助手發(fā)送一個(gè)8字節(jié)的數(shù)據(jù),然后我想查看8個(gè)字節(jié)是否被單片接收,比如數(shù)據(jù)是0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08這8個(gè)數(shù)值,串口中斷
      #pragma vector=ITC_IRQ_UART1_RX + 2
      __interrupt void Uart1RxdInt(void)
      { //此函數(shù)內(nèi)已完成清中斷標(biāo)志
      u8 ret;
      if(UART1_GetFlagStatus(UART1_FLAG_RXNE)!=RESET)
      {
      tmp = UART1_ReceiveData8();
      ret=UART_KbdPkgRead(tmp);
      if(ret==0)
      {
      KBD_Flag_RECE=1;
      }
      }
      }
      我在ret的地方設(shè)了個(gè)斷點(diǎn),然后每次發(fā)送進(jìn)入中斷的時(shí)候發(fā)現(xiàn)可以停止在那,并且此時(shí)接受的數(shù)據(jù)的確也是0x01,然后有全速運(yùn)行,接受的數(shù)據(jù)也是0x02,在全速運(yùn)行就可能又是0x01或者根本不會(huì)停下來(lái),
      此時(shí)我才知道我犯了一個(gè)錯(cuò)誤,當(dāng)發(fā)送一串?dāng)?shù)據(jù)時(shí),斷點(diǎn)不應(yīng)該設(shè)在中斷內(nèi),因?yàn)閏pu在斷點(diǎn)停留處,她是不會(huì)停下的,也就是那串?dāng)?shù)據(jù)會(huì)被錯(cuò)過(guò),如果你發(fā)送一個(gè)數(shù)字,那就不會(huì)錯(cuò)過(guò)了。
      接下來(lái)該怎么辦呢?
      進(jìn)入中斷的函數(shù),比如我的是UART_KbdPkgRead()。進(jìn)入后可以編寫(xiě)一個(gè)小程序,用來(lái)判斷接受得到數(shù)據(jù)是否是要發(fā)送的,比如if(dat==0x01),if(dat==0x02).這樣在他前邊設(shè)置斷點(diǎn),用來(lái)判斷這一串?dāng)?shù)據(jù)是否被單片機(jī)接收到了。


      評(píng)論


      技術(shù)專區(qū)

      關(guān)閉