linuxARM裸机学习笔记(6)----UART串口通信和串口格式化函数移植实验

UART串口通信

协议介绍串口通信协议_ft232和ch340是串口的哪种协议_夜路难行々的博客-CSDN博客

I.MX6U UART

UART时钟源选择的是pll3_80m,然后在(bit5:0)设置分频值,设置为1分频

 

ADBR(bit14) :自动波特率检测使能位,为 0 的时候关闭自动波特率检测,为 1 的时候使
能自动波特率检测
UARTEN(bit0) UART 使能位,为 0 的时候关闭 UART ,为 1 的时候使能 UART

 

IRTS(bit14) :为 0 的时候使用 RTS 引脚功能,为 1 的时候忽略 RTS 引脚。
PREN(bit8) :奇偶校验使能位,为 0 的时候关闭奇偶校验,为 1 的时候使能奇偶校验。
PROE(bit7) :奇偶校验模式选择位,开启奇偶校验以后此位如果为 0 的话就使用偶校
验,此位为 1 的话就使能奇校验。
STOP(bit6) :停止位数量,为 0 的话 1 位停止位,为 1 的话 2 位停止位。
WS(bit5) :数据位长度,为 0 的时候选择 7 位数据位,为 1 的时候选择 8 位数据位。
TXEN(bit2) :发送使能位,为 0 的时候关闭 UART 的发送功能,为 1 的时候打开 UART
的发送功能。
RXEN(bit1) :接收使能位,为 0 的时候关闭 UART 的接收功能,为 1 的时候打开 UART
的接收功能。
SRST(bit0) :软件复位,为 0 的是时候软件复位 UART ,为 1 的时候表示复位完成。复位
完成以后此位会自动置 1 ,表示复位完成。此位只能写 0 ,写 1 会被忽略掉

 

 寄存器 UARTx_UCR3 中的位 RXDMUXSEL(bit2),这个位应该始终为 1

 

 TXDC(bit3):发送完成标志位,为 1 的时候表明发送缓冲(TxFIFO)和移位寄存器为空,也

就是发送完成,向 TxFIFO 写入数据此位就会自动清零。
RDR(bit0) :数据接收标志位,为 1 的时候表明至少接收到一个数据,从寄存器
UARTx_URXD 读取数据接收到的数据以后此位会自动清零

 分频设置:

 

 波特率计算

波特率计算公式:Baud Rate = Ref Freq / (16 * (UBMR + 1)/(UBIR+1))

设定的时钟频率为80MHZ,可以看出UBIR和UBMR的最大值为0XFFFF,,设置的分频系数为1,【0b101】,算出UBIR=71UBMR=3124的时候,波特率为115200.

实验结果:

串口格式化函数移植实验

串口格式化函数简介

格式化函数说的是 printf sprintf scanf 这样的函数,分为格式化输入和格式化输出两类
函数,通过 scanf 函数从键盘获取输入。这样就有了输入和输出了,实现了最基本的人机交互,在 I.MX6U-ALPHA 开发板上也可以使用此方法, 将 printf scanf 映射到串口上,完成与开发板的交互

移植两个从uboot来的文件,因为是从uboot源码里面抠出来的,所以导致并不是完全版的格式化函数。【存在功能的欠缺】。

 实验结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜路难行々

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值