OK6410 uart 簡單測試程式

來源:互聯網
上載者:User

 

uart初始化。

1  我們可以通過原理圖可知道  串口的RXD,TXD 分別串連在OK6410 GPA0,GPA1 口上的。。所以首先設定GPIO 的輸入輸出狀態:0010=UART RXD[0]      0010=UART TXD[0]   

   同時設定相應的上下拉電阻關係。

 

rGPACON = (rGPACON & ~(0xff<<0)) | (0x22<<0); 
rGPAPUD = (rGPAPUD & ~(0xf<<0)) | (0x1<<0);

 

 

2  uart 初始化:

     2.1、配置UART 0 通道行控制寄存器。ULCON0格式如所示

 

rULCON0=rULCON0&(0xFFFFFFFF)|(0<<6)|(0<<3)|(0<<2)|(3<<0);   //普通操作模式   無校正  1位停止位   8位元據位

   2.2 配置 UCON0寄存器。

rUCON0=rUCON0&(0xFFFFFFFF)|(0<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1<<0);  

·

 

 2.3、配置UFCON0寄存器 

 

rUFCON0=rUFCON0&(0xFFFFFFFF)|(0<<6)|(0<<4)|(0<<2)|(0<<1)|(0<<1);

 

 2.4、配置 rUMCON0 寄存器

rUMCON0 = (0<<4)|(0<<0); 


  2.5、設定傳輸速率   UBRDIV0,UDIVSLOT0  寄存器  

           因為上面  配置UCON0寄存器的時候選擇 該模式 所以採用以下公式

            DIV_VAL = (PCLK / (b/s × 16 ) ) –1

            PCLK=66MHz  =66000000Hz

           DIV_VAL=66000000/(115200× 16)) - 1

                          =35.8-1

                          =34.8

UBRDIVn = 20 (DIV_VAL 的整數部分)
(UDIVSLOTn 中 1 的數量)/16 = 0.8
這時, (UDIVSLOTn 中 1 的數量) = 12
因此, UDIVSLOTn 為 16’b1101_1101_1101_1101 或者 16’b0111_0111_0111_0101 等。 

Num of 1’s UDIVSLOTn Num of 1’s UDIVSLOTn
0 0x0000(0000_0000_0000_0000b)           8    0x5555(0101_0101_0101_0101b)
1 0x0080(0000_0000_0000_1000b)           9    0xD555(1101_0101_0101_0101b)
2 0x0808(0000_1000_0000_1000b)          10   0xD5D5(1101_0101_1101_0101b)
3 0x0888(0000_1000_1000_1000b)          11   0xDDD5(1101_1101_1101_0101b)
4 0x2222(0010_0010_0010_0010b)          12   0xDDDD(1101_1101_1101_1101b)
5 0x4924(0100_1001_0010_0100b)          13   0xDFDD(1101_1111_1101_1101b)
6 0x4A52(0100_1010_0101_0010b)          14   0xDFDF(1101_1111_1101_1111b)
7 0x54AA(0101_0100_1010_1010b)          15   0xFFDF(1111_1111_1101_1111b)

  根據上述分析:

 

rUBRDIV0=34;rUDIVSLOT0=0xDDDD;

 

3   uart 發送 

        主函數調用  Uart_Printf()函數實現列印功能

        uart 發送的時候是通過判斷FIFO緩衝器(UTRSTAT0  的第二位 )是否為空白,如果為空白則發送。  (這個是在 UFCON0 寄存器中第六位 設定的) 

      

     

     void Uart_SendByte(int data)      {   while(!(rUTRSTAT0&0x02));      WrUTXH0(data);
      }

          

 最終工程檔案:http://pan.baidu.com/share/link?shareid=64455&uk=3037598361

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.