如果要想在串口工具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 代码如下
- #include "2440addr.h"
- #include "uart.h"
- #include "string.h"
- #include <stdarg.h>
- #include "stdio.h"
- /*
- Function name : uart0_init
- Description : Uart 0 init