s3c2440串口调试函数
时间:11-20
来源:互联网
点击:
- #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串口调试函 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)