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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 改進(jìn)利用串口的FIFO接收數(shù)據(jù)

          改進(jìn)利用串口的FIFO接收數(shù)據(jù)

          作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
          1. /****************************************************************************
          2. #*名稱:UART_Initt
          3. #*功能:初始化UART0中斷以及中斷向量表的配置
          4. #*入口參數(shù):無(wú)
          5. #*出口參數(shù):無(wú)
          6. #****************************************************************************/
          7. voidUART_Init(void)
          8. {
          9. uint16Fdiv;
          10. U0LCR=0x83;//相關(guān)校驗(yàn)位、數(shù)據(jù)長(zhǎng)度等的設(shè)置,DLAB=1,可設(shè)置波特率
          11. Fdiv=(Fpclk/16)/BAUD;
          12. U0DLM=Fdiv/256;
          13. U0DLL=Fdiv%256;
          14. U0LCR=0X03;
          15. U0IER=0X01;//只使能接收中斷
          16. U0FCR=0x81;//使能發(fā)送和接收的FIFO,8字節(jié)觸發(fā)
          17. IRQEnable();//使能IRQ中斷(這一步注意,下午調(diào)試了好久,唉)
          18. VICIntSelect=0x00000000;//設(shè)置所有通道為IRQ中斷
          19. VICVectCntl0=0x20|6;//UART0通道分配到IRQslot0,優(yōu)先級(jí)最高
          20. VICVectAddr0=(uint32)UART0_IRQ;//設(shè)置UART0中斷程序地址
          21. VICIntEnable=0x40;//使能UART0中斷
          22. }
          23. void__irqUART0_IRQ(void)
          24. {
          25. intcount;
          26. switch(U0IIR&0x0F)
          27. {
          28. case0x02://產(chǎn)生發(fā)送中斷
          29. break;
          30. case0x04://FIFO接收數(shù)據(jù)到達(dá)8個(gè)字節(jié)
          31. for(count=0;count<8;count++)
          32. {
          33. Recive_Buffer[UART0Count++]=U0RBR;//保存接收到的數(shù)據(jù)
          34. }
          35. rcv_new=1;//標(biāo)志接收到新的數(shù)據(jù)
          36. break;
          37. case0x0c://FIF0中至少有一個(gè)數(shù)據(jù),而且在3.5到4.5個(gè)字符時(shí)間內(nèi)無(wú)數(shù)據(jù)進(jìn)(可判斷數(shù)據(jù)接收完畢)
          38. while((U0LSR&0x01)==0x01)
          39. {
          40. Recive_Buffer[UART0Count++]=U0RBR;
          41. }
          42. rcv_new=1;//標(biāo)志接收到新的數(shù)據(jù)
          43. break;
          44. default:
          45. break;
          46. }
          47. VICVectAddr=0x00;//結(jié)束中斷
          48. }


          關(guān)鍵詞: 串口FIFO接收數(shù)

          評(píng)論


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

          關(guān)閉
          看屁屁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); })();