数码相框项目模块【二】 UART

本文介绍了如何在嵌入式系统中配置UART模块进行串口通信,包括设置I/O寄存器、配置特殊寄存器如ULCON0、UCON0等,并提供了C语言实现的UART0初始化及发送、接收字符的函数示例。
摘要由CSDN通过智能技术生成

如果要想在串口工具DWN上显示打印信息,使用C语言的标准库是没有效果的,必须利用开发板上的串口,经过CPU来进行输出打印信息,UART模块可以实现输入和输出的功能

(一)配置I /0 寄存器
要在原理图上找到串口,这里我们使用串口0 ( U12 ),需要在原理图上找到接收数据信号 XRXD0 和 传送数据信号 XTXD0 两条信号线,然后在核心板上找到对应的输入输出端口GPH2和GPH3,由此,找到相应的控制寄存器GPHCON,设置为特定功能 RXD[0] 和 TXD[0]

(二)配置特殊寄存器
由规格书可知我们需要配置的特殊寄存器有 ULCON、UCON、UFCON 和 UBRDIV 
ULCON0寄存器:8-bit data,no parity,one stop bit
UCON0寄存器: PCLK,polling mode
UFCON0寄存器:Non-FIFO mode
UMCON0寄存器:disable the MODEM mode
UBRDIV寄存器的设置:按照波特率为115200,PCLK=50MHz,根据规格书上的公式计算可得数值为 27 -1

(三)输入输出原理,如下图:



接收字符:当从键盘接受一个字符时,通过URXH0寄存器进行返回,若缓冲区没有字符,则需要一直进行等待
传送字符:直到缓冲区为空时,才进行传送字符,否则就一直进行等待

UART0.C 代码如下

Code:
  1. #include "2440addr.h"   
  2. #include "uart.h"   
  3. #include "string.h"   
  4. #include <stdarg.h>   
  5. #include "stdio.h"   
  6.   
  7. /*  
  8. Function  name  :   uart0_init  
  9. Description     :   Uart 0 init  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值