新聞中心

S3C2440的UART

作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
S3C2440 的通用異步收發(fā)器(UART)配有3個獨立異步串行I/O(SIO)端口

每個 UART 包含一個波特率發(fā)生器、發(fā)送器、接收器和一個控制單元

本文引用地址:http://m.butianyuan.cn/article/201611/319199.htm

UART 基本工作原理
內(nèi)置波特率發(fā)生器,為串行數(shù)據(jù)的發(fā)送和接收提供時鐘,根據(jù)這個時鐘節(jié)拍,數(shù)據(jù)先寫到FIFO中然后在拷貝到發(fā)送移位器中,在移位發(fā)送到引腳TxDn, 期間,發(fā)送過來的數(shù)據(jù)通過引腳RxDn進入移位器中然后拷貝到接收器的FIFO中

UART寄存器(詳情見數(shù)據(jù)手冊)
ULCONn(3個)
UCONn(3個)
UFCONn(3個)
UMCONn(2個)
UTRSTATn(3個)
UERSTATn(3個)
UFSTATn(3個)
UMSTATn(2個)
UTXHn(3個)
URXHn(3個)
UBRDIVn(3個)

存儲在波特率分頻寄存器中的值(UBRDIVn)是用于決定如下的串行Tx/Rx時鐘率(波特率):
UBRDIVn = (int)( UART時鐘 / ( 波特率 × 16) ) –1
( UART時鐘:PCLK,F(xiàn)CLK/n 或UEXTCLK )

一個例子(啟動代碼自己添加)

  1. #include"config.h"
  2. #definePCLK50000000
  3. voidUart0_Init(unsignedintbandrate)
  4. {
  5. rGPHCON&=~((3<<4)|(3<<6));
  6. rGPHCON|=(2<<4)|(2<<6);//GPH2--TXD[0];GPH3--RXD[0]
  7. rGPHUP=0x00;//使能上拉功能
  8. rULCON0|=0x03;//8位數(shù)據(jù),1位停止位
  9. rUCON0=0x05;
  10. rUBRDIV0=PCLK/bandrate/16-1;
  11. rURXH0=0;//清空UART0接收緩沖器
  12. }
  13. voidSendchar(unsignedcharc)
  14. {
  15. rUTXH0=c;//寫入UART0發(fā)送緩沖器
  16. while(!(rUTRSTAT0&(1<<2)));//等待字符發(fā)送完
  17. }
  18. unsignedcharGetchar(void)
  19. {
  20. unsignedcharc;
  21. while(!(rUTRSTAT0&(1<<0)));//等待接收字符
  22. c=rURXH0;//接收緩沖器的字符
  23. returnc;
  24. }
  25. intMain()
  26. {
  27. unsignedcharZ_char;
  28. Uart0_Init(115200);
  29. while(1)
  30. {
  31. Z_char=Getchar();
  32. Sendchar(Z_char);
  33. }
  34. return0;
  35. }





關鍵詞: S3C2440UAR

評論


技術專區(qū)

關閉