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

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            LPC1768之串口UART0

            作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
            串口操作,首先是功率,時鐘控制打開。

            然后是管腳選擇,設(shè)置為串口模式。

            本文引用地址:http://www.biyoush.com/article/201611/319422.htm

            然后設(shè)定串口傳輸數(shù)據(jù)格式。

            波特率設(shè)置,(主意有小數(shù)位和沒小數(shù)位時候不一樣,有小數(shù)位需要設(shè)置DIVADDL和MULVAL)。

            然后鎖存波特率。

            設(shè)定控制UARTn RX和TX FIFO的操作。

            最后打開系統(tǒng)中UART0的中斷,使能接收中斷。

            詳見代碼,代碼中有詳細(xì)注釋。

            1. #include<LPC17XX.h>
            2. #defineFOSC12000000
            3. #defineFCCLK(FOSC*8)
            4. #defineFCCO(FCCLK*3)
            5. #defineFPCLK(FCCLK/4)
            6. intUart0RecvBuf;//UART0RXDATA
            7. voidUart0Init(uint32_tbps)
            8. {
            9. LPC_SC->PCONP|=(1<<3); //打開UART0功率、時鐘控制位
            10. LPC_PINCON->PINSEL0=0X00000050;//P0.2P0.3設(shè)置為串口
            11. LPC_UART0->LCR=0x83; //設(shè)置串口數(shù)據(jù)格式,8位字符長度,1個停止位,無校驗,
            12. //使能訪問除數(shù)鎖存器,設(shè)定波特率
            13. LPC_UART0->DLM=((FPCLK/16)/bps)/256;//除數(shù)高八位,沒有小數(shù)情況
            14. LPC_UART0->DLL=((FPCLK/16)/bps)%256; //除數(shù)第八位
            15. LPC_UART0->LCR=0x03; //禁止訪問除數(shù)鎖存器,鎖定波特率
            16. LPC_UART0->FCR=0x07; //控制UARTnRX和TXFIFO的操作。接收數(shù)據(jù)一個字節(jié)觸發(fā)中斷
            17. NVIC_EnableIRQ(UART0_IRQn);
            18. LPC_UART0->IER=0x01; //使能接收中斷
            19. }
            20. intUart0RecvByte(void)//查詢法
            21. {
            22. //當(dāng)UnRBR包含未讀字符時,UnLSR[0]就會被置位;當(dāng)UARTnRBRFIFO為空時,UnLSR[0]就會被清零
            23. //0-UnRBR為空
            24. //1-UnRBR包含有效數(shù)據(jù)
            25. while(!((LPC_UART0->LSR)&0x01));//等待判斷LSR[0]是否是1,1時表示RBR中接收到數(shù)據(jù)
            26. return(LPC_UART0->RBR); //讀取接收數(shù)據(jù)
            27. }
            28. intUart0SendByte(intbuf)
            29. {
            30. //當(dāng)檢測到UARTnTHR已空時,THRE就會立即被設(shè)置。寫UnTHR會清零THRE
            31. //0-UnTHR包含有效字符
            32. //1-UnTHR為空
            33. while(!((LPC_UART0->LSR)&0x01));//等待判斷LSR[5](即THRE)是否是1,1時表示THR中為空
            34. LPC_UART0->THR=buf; //發(fā)送數(shù)據(jù)
            35. return0;
            36. }
            37. voidUART0_IRQHandler(void)
            38. {
            39. Uart0RecvBuf=LPC_UART0->RBR;//讀取接收數(shù)據(jù)
            40. Uart0SendByte(Uart0RecvBuf); //發(fā)送接收到的數(shù)據(jù)
            41. }
            42. intmain(void)
            43. {
            44. inttemp;
            45. SystemInit();
            46. Uart0Init(115200);
            47. while(1)
            48. {
            49. //temp=Uart0RecvByte();//查詢接收數(shù)據(jù)
            50. //Uart0SendByte(temp);//發(fā)送數(shù)據(jù)
            51. }
            52. }


            關(guān)鍵詞: LPC1768串口UART

            評論


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

            關(guān)閉