UART裸机驱动设计
来源:互联网 发布:七微南风知我意2微盘 编辑:程序博客网 时间:2024/06/15 19:40
UART裸机驱动设计主要在于配置各寄存器的值;
开发板型号: TX2440;
UART 使能: 使能UART0;
传 输 参 数: 8位数据位,1位停止位,无奇偶校验,波特率115200;
时 钟 参 数: UART使用系统的 PCLK.
/********************************************************************版权所有(C)2015,ZJU**文件名称:uart.c*内容摘要:关于UART的配置*其它说明:开发板型号:TX2440 * UART0:RXD0 -- GPH3 , TXD0 -- GPH2*当前版本:V1.0*作 者:Frank*完成日期:2015.12.14********************************************************************/#define GPHCON(*(volatile unsigned long *)0x56000070)//Configures the pins of port H#define ULCON0(*(volatile unsigned long *)0x50000000) //UART channel 0 line control register#define UCON0(*(volatile unsigned long *)0x50000004) //UART channel 0 control register#define UTRSTAT0(*(volatile unsigned long *)0x50000010) //UART channel 0 Tx/Rx status register#define UTXH0(*(volatile unsigned long *)0x50000020) //UART channel 0 transmit buffer register#define URXH0(*(volatile unsigned long *)0x50000024)//UART channel 0 receive buffer register#define UBRDIV0(*(volatile unsigned long *)0x50000028) //Baud rate divisior register 0#define PCLK50000000 //PCLK=50M (start.S中设置了 FCLK:HCLK:PCLK = 1:4:8, FCLK=400M)#define BAUD115200/********************************************************************函数名称:Uart_Init()*功能描述:UART初始化函数*其他说明:*创建日期:2015.12.14*******************************************************************/void Uart_Init(void){/*配置引脚功能*/GPHCON &= (~(0xf << 4));GPHCON |= (0xa << 4);//GPH2设为TXD0,GPH3设为RXD0/*设置数据格式*/ULCON0 = 0b11;//8位数据位,1位停止位,无奇偶校验/*设置工作模式*/UCON0 = 0b0101;//发送和接收均采用轮询方式/*设置波特率*/UBRDIV0 = (int)(PCLK/(BAUD*16) - 1);//波特率设置为115200}/********************************************************************函数名称:Puts()*功能描述:字符发送函数*输入形参:ch*返 回 值:无*其他说明:ch为需要发送的字符*创建日期:2015.12.14*******************************************************************/void Puts(unsigned char ch){while (!(UTRSTAT0 & (1 << 2)));UTXH0 = ch;}/********************************************************************函数名称:Gets()*功能描述:字符接收函数*输入形参:无*返 回 值:ch*其他说明:ch为接收到的字符*创建日期:2015.12.14*******************************************************************/unsigned char Gets(void){char ch;while (!(UTRSTAT0 & (1 << 0)));ch = URXH0;return ch;}
0 0
- UART裸机驱动设计
- S3C2440 UART串口驱动(裸机)
- Nand Flash裸机驱动设计
- S3C6410裸机UART驱动(将printf重定义到串口)
- TX2440裸机程序-uart
- ARM裸机串口UART
- 裸机系列-UART串口
- nrf51822裸机教程-UART
- ARM9 mini2451裸机学习——UART驱动学习和整理
- Uart驱动
- FriendlyARM UART裸机程序源码
- ARM裸机编程系列---UART
- S3C2440裸机实验(2)-----uart
- S3C2440裸机实验(1)-----uart
- TQ2440裸机上的UART程序分析
- s3c6410 uart 裸机 轮询 非fifo
- ARM9裸机的UART程序测试
- ARM裸机实验 UART串口(S3C2440A) TQ2440
- maven中snapshot快照库和release发布库的区别和作用
- 防外链
- float型数据在内存中的存储方式
- C++经典面试题
- linux reboot flow
- UART裸机驱动设计
- jstl-functions的用法
- JSP入门之自定义标签
- 360加固宝
- sleep和wait有什么区别
- sss
- ThinkPHP 跨控制器页面跳转 官方文档 未讲清楚
- netty5笔记-线程模型3-EventLoop
- vm和主机互相ping不通