一 串口介绍
1 简单介绍
UART(Universal Asynchronous Receive Transmit):属于最基本的一种异步传输接口,其信号线只有Rx和Tx两条,基本的数据格式为:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even, Odd or None) + Stop Bit(1~2Bit)。一位数据所占的时间称为Baud Rate(波特率)。
此类接口最常用的方式就是与PC机的串口进行数据通讯。
2 看下IM6UL的串口跟STM32F4的串口的介绍区别
咋一看,感觉都差不多,最大速度是不一样的。
3 查看硬件电路
二 串口程序分析
2.1 IO口的初始化
/* UART1的IO初始化 */
void uart_io_init(void)
{
IOMUXC_SetPinMux(IOMUXC_UART1_TX_DATA_UART1_TX, 0); /*复用为UART1_TX */
IOMUXC_SetPinMux(IOMUXC_UART1_RX_DATA_UART1_RX, 0); /*复用为UART1_RX */
IOMUXC_SetPinConfig(IOMUXC_UART1_TX_DATA_UART1_TX, 0x10b0);
IOMUXC_SetPinConfig(IOMUXC_UART1_RX_DATA_UART1_RX, 0x10b0);
}
这个寄存器和STM32的就是千差万别了
2.2串口设置
先看下STM32的,这个大家应该都非常熟悉
在看下IMX6UL的串口设置程序
看了下寄存器 大体上是差不多的,基本都能对得上
2.3 IM6UL的波特率计算公式
我们现在要得到115200的波特率,串口clk为80M
UBMR+1/UBIR+1 = 80M/115200/16
UBMR+1/UBIR+1 = 3125/72
即可得出UBMR=3124 UBIR=71
这个计算出来就可以得出初始化函数了
初始化函数寄存器和STM32的初始化函数基本差不多,先配置GPIO再配置UART
如果我们要实现5M bps波特率
UBMR+1/UBIR+1 = 80M/5M/16 = 1
UBMR=UBIR=0x0f
三 实验
3.1程序烧录
程序编写好后,make
插入SD卡
查询 是否已经识别
3.2硬件启动
开发板插入SD卡,设置为SD卡启动
硬件接法
3.3测试结果
看下测试结果
打开串口助手,设置串口波特率等信息
串口都显示乱码了
使用MobaXterm软件
测试成功