- #include”2440addr.h”
- #include
- #include
- #include
- #include
- #include
- #defineTXD0READY(1<<2)
- #defineRXD0READY(1)
- #defineUART_CLK50000000//UART0的时钟源设为PCLK
- #defineUART_BAUD_RATE115200//波特率
- #defineUART_BRD((UART_CLK/(UART_BAUD_RATE*16))-1)
- /*
- *初始化UART0
- *115200,8N1,无流控
- */
- voidUart0_Init(void)
- {
- rGPHCON|=0xa0;//GPH2,GPH3用作TXD0,RXD0
- rGPHUP=0x0c;//GPH2,GPH3内部上拉
- rULCON0=0x03;//8N1(8个数据位,无较验,1个中止位)
- rUCON0=0x05;//查询方法,UART时钟源为PCLK
- rUFCON0=0x00;//不运用FIFO
- rUMCON0=0x00;//不运用流控
- rUBRDIV0=UART_BRD;//波特率为115200
- }
- /*
- *发送一个字符
- */
- voidSend_Byte(unsignedcharc)
- {
- /*等候,直到发送缓冲区中的数据现已悉数发送出去*/
- while(!(rUTRSTAT0&TXD0READY));
- /*向UTXH0寄存器中写入数据,UART即主动将它发送出去*/
- rUTXH0=c;
- }
- /*
- *接纳字符
- */
- unsignedcharGet_Byte(void)
- {
- /*等候,直到接纳缓冲区中的有数据*/
- while(!(rUTRSTAT0&RXD0READY));
- /*直接读取URXH0寄存器,即可取得接纳到的数据*/
- returnrURXH0;
- }
- /*
- *判别一个字符是否数字
- */
- intisDigit(unsignedcharc)
- {
- if(c>=0&&c<=9)
- return1;
- else
- return0;
- }
- /*
- *判别一个字符是否英文字母
- */
- intisLetter(unsignedcharc)
- {
- if(c>=a&&c<=z)
- return1;
- elseif(c>=A&&c<=Z)
- return1;
- else
- return0;
- }
- voidUart0_SendString(char*pt)
- {
- while(*pt)
- {
- Send_Byte(*pt++);
- }
- }
- voidUart_Printf(char*fmt,…)
- {
- va_listap;
- charstring[256];
- va_start(ap,fmt);
- vsprintf(string,fmt,ap);
- Uart0_SendString(string);
- va_end(ap);
- }
s3c2440串口调试函数
#include2440addr.h#includestdarg.h>#includestring.h>#includestdlib.h>#includestdio.h>#in
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/264428.html