国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

LPC1768之串口UART0

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

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

本文引用地址:http://m.ptau.cn/article/201611/319422.htm

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

波特率設(shè)置,(主意有小數(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功率、時(shí)鐘控制位
  10. LPC_PINCON->PINSEL0=0X00000050;//P0.2P0.3設(shè)置為串口
  11. LPC_UART0->LCR=0x83; //設(shè)置串口數(shù)據(jù)格式,8位字符長(zhǎng)度,1個(gè)停止位,無校驗(yàn),
  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ù)一個(gè)字節(jié)觸發(fā)中斷
  17. NVIC_EnableIRQ(UART0_IRQn);
  18. LPC_UART0->IER=0x01; //使能接收中斷
  19. }
  20. intUart0RecvByte(void)//查詢法
  21. {
  22. //當(dāng)UnRBR包含未讀字符時(shí),UnLSR[0]就會(huì)被置位;當(dāng)UARTnRBRFIFO為空時(shí),UnLSR[0]就會(huì)被清零
  23. //0-UnRBR為空
  24. //1-UnRBR包含有效數(shù)據(jù)
  25. while(!((LPC_UART0->LSR)&0x01));//等待判斷LSR[0]是否是1,1時(shí)表示RBR中接收到數(shù)據(jù)
  26. return(LPC_UART0->RBR); //讀取接收數(shù)據(jù)
  27. }
  28. intUart0SendByte(intbuf)
  29. {
  30. //當(dāng)檢測(cè)到UARTnTHR已空時(shí),THRE就會(huì)立即被設(shè)置。寫UnTHR會(huì)清零THRE
  31. //0-UnTHR包含有效字符
  32. //1-UnTHR為空
  33. while(!((LPC_UART0->LSR)&0x01));//等待判斷LSR[5](即THRE)是否是1,1時(shí)表示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

評(píng)論


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

關(guān)閉