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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 最簡單的s3c2440的UART功能測試

          最簡單的s3c2440的UART功能測試

          作者: 時間:2016-11-20 來源:網(wǎng)絡 收藏
          * 文件名稱:UART.c
          * 實現(xiàn)功能:最基本的UART發(fā)送與接收
          * 作者:無jianqi
          * 版本:1.0

          #include"2440addr.h" //包含2440相關寄存器的設置

          本文引用地址:http://www.ex-cimer.com/article/201611/318921.htm#include"def.h"

          //四個LED對應GPB5.6.7.8。
          #define LED1 5
          #define LED2 6
          #define LED3 7
          #define LED4 8

          #define BAUD 115200 //波特率
          #define Bit(x) (1<#define Output(x) (1<<2*x) //將對應IO置為輸出
          #define LED_On(x) rGPBDAT=~Bit(x) //點亮相應LED


          * 名稱:Clk_Set
          * 功能:關于系統(tǒng)時鐘的初始化
          * 入口參數(shù):無
          * 出口參數(shù):無

          void Clk_Set(void)
          {
          int count;
          rUPLLCON=(56<<12)|(2<<4)|2; //UCLK為48MHZ
          for(count=0;count<10;count++)
          {
          ;
          }
          rMPLLCON=(92<<12)|(1<<4)|1; //FCLK為400MHZ
          rCLKDIVN=(0<<3)|(2<<1)|1;//HCLK位100MHZ,PCLK為50MHZ
          rCAMDIVN=(0<<9); //PCLK=HCLK/4
          }

          * 名稱:IO_init
          * 功能:關于LED的端口初始化
          * 入口參數(shù):無
          * 出口參數(shù):無

          void IO_init(void)
          {
          rGPBCON=Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4); //LED的IO口置為輸出
          rGPBDAT=0xffff; //LED全部熄滅
          }


          * 名稱:UART0_init
          * 功能:UART0相關的初始化工作
          * 入口參數(shù):無
          * 出口參數(shù):無

          void UART0_init(void)
          {
          rGPHCON=0xa0; //IO口使能UART0功能
          rGPHUP=0xff; //上拉禁止
          rULCON0=0x03; // 8位數(shù)據(jù),無校驗,1位停止位
          rUCON0=0x05; //pclk時鐘,中斷請求方式為Tx-電平,Rx-脈沖
          rUBRDIV0=26; //設置波特率
          rUFCON0=0x00; //不使用FIFO
          rUMCON0=0x00; //不使用流控
          }


          * 名稱:Send_Byte
          * 功能:發(fā)送一個字符
          * 入口參數(shù):等待發(fā)送的字符
          * 出口參數(shù):無

          void Send_Byte(char data)
          {
          while(!(rUTRSTAT0&0x2)); //等待發(fā)送緩沖器空
          rUTXH0=data;
          }


          * 名稱:Send_String
          * 功能:發(fā)送字符串
          * 入口參數(shù):等待發(fā)送的字符串
          * 出口參數(shù):無

          void Send_String(char* pt)
          {
          while(*pt)
          {
          Send_Byte(*pt++);
          }
          }


          * 名稱:Uart_Getch
          * 功能:接收一個字符
          * 入口參數(shù):無
          * 出口參數(shù):接收的字符

          char Uart_Getch(void)
          {
          while(!(rUTRSTAT0&0x1)); //等待接收緩沖器有數(shù)據(jù)
          return (rURXH0); //讀出數(shù)據(jù)
          }


          * 名稱:Main
          * 功能:測試UART發(fā)送和接收函數(shù)
          * 入口參數(shù):無
          * 出口參數(shù):無

          void Main(void)
          {
          char temp;
          IO_init();
          UART0_init();
          Clk_Set();
          Send_String("HelloWorld"); //發(fā)送字符串
          while(1)
          {
          temp=Uart_Getch(); //接收到字符
          if(temp==0x01)
          {
          LED_On(LED1);
          }
          }

          }


          關鍵詞: s3c2440UART功能測

          評論


          技術專區(qū)

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