- /*******************************************
- *文件称号: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功用测验
/********************************************文件名称:UART.c*实现功能:最基本的UART发送与接收*作者:无jianqi*版本:1.0*******
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/264424.html