最简单的S3c2440UART功能测试
时间:11-20
来源:互联网
点击:
- /*******************************************
- *文件名称:UART.c
- *实现功能:最基本的UART发送与接收
- *作者:无jianqi
- *版本:1.0
- **********************************************/
- #include"2440addr.h"//包含2440相关寄存器的设置
- #include"def.h"
- //四个LED对应GPB5.6.7.8。
- #defineLED15
- #defineLED26
- #defineLED37
- #defineLED48
- #defineBAUD115200//波特率
- #defineBit(x)(1
- #defineOutput(x)(1<2*x)//将对应IO置为输出
- #defineLED_On(x)rGPBDAT=~Bit(x)//点亮相应LED
- /*******************************************
- *名称:Clk_Set
- *功能:关于系统时钟的初始化
- *入口参数:无
- *出口参数:无
- **********************************************/
- voidClk_Set(void)
- {
- intcount;
- 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的端口初始化
- *入口参数:无
- *出口参数:无
- **********************************************/
- voidIO_init(void)
- {
- rGPBCON=Output(LED1)|Output(LED2)|Output(LED3)|Output(LED4);//LED的IO口置为输出
- rGPBDAT=0xffff;//LED全部熄灭
- }
- /*******************************************
- *名称:UART0_init
- *功能:UART0相关的初始化工作
- *入口参数:无
- *出口参数:无
- **********************************************/
- voidUART0_init(void)
- {
- rGPHCON=0xa0;//IO口使能UART0功能
- rGPHUP=0xff;//上拉禁止
- rULCON0=0x03;//8位数据,无校验,1位停止位
- rUCON0=0x05;//pclk时钟,中断请求方式为Tx-电平,Rx-脉冲
- rUBRdiv0=26;//设置波特率
- rUFCON0=0x00;//不使用FIFO
- rUMCON0=0x00;//不使用流控
- }
- /*******************************************
- *名称:Send_Byte
- *功能:发送一个字符
- *入口参数:等待发送的字符
- *出口参数:无
- **********************************************/
- voidSend_Byte(chardata)
- {
- while(!(rUTRSTAT0&0x2));//等待发送缓冲器空
- rUTXH0=data;
- }
- /*******************************************
- *名称:Send_String
- *功能:发送字符串
- *入口参数:等待发送的字符串
- *出口参数:无
- **********************************************/
- voidSend_String(char*pt)
- {
- while(*pt)
- {
- Send_Byte(*pt++);
- }
- }
- /*******************************************
- *名称:Uart_Getch
- *功能:接收一个字符
- *入口参数:无
- *出口参数:接收的字符
- **********************************************/
- charUart_Getch(void)
- {
- while(!(rUTRSTAT0&0x1));//等待接收缓冲器有数据
- return(rURXH0);//读出数据
- }
- /*******************************************
- *名称:Main
- *功能:测试UART发送和接收函数
- *入口参数:无
- *出口参数:无
- **********************************************/
- voidMain(void)
- {
- chartemp;
- IO_init();
- UART0_init();
- Clk_Set();
- Send_String("HelloWorld");//发送字符串
- while(1)
- {
- temp=Uart_Getch();//接收到字符
- if(temp==0x01)
- {
- LED_On(LED1);
- }
- }
- }
S3c2440UART功能测 相关文章:
- 最简单的s3c2440的UART功能测试(11-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)