ARM-contexA9接口技术-uart

本文详细介绍了如何配置ESONY_4412芯片中的UART控制器进行串口通信,包括设置帧格式、波特率、工作模式,并通过配置相关寄存器实现数据的发送与接收。讲解了UART的两根数据线如何进行双向通信,并提到了UART的波特率计算方法。最后,讨论了如何利用缓冲区状态寄存器进行数据的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

uart也是ESONY_4412芯片里面的控制器
它还是一种串口通行协议
在这里插入图片描述
它有两根数据线,所以通过uart串口连接的主机和外设都可以给对方发数据。
那uart是怎么发送数据的呢?
利用帧格式和设置相同的波特率就可以进行通信了。
在这里插入图片描述
数据位只能是5到8位,利用设置相应寄存器。
下面就来配置uart控制器里面相应的寄存器来实现,数据的收发,这里我们用ARM当主机,我们的电脑当外设进行通信。(一般用中间的接口com2(丝印con7))
在这里插入图片描述
我们的串口连接的是一个小芯片用来转换什么的把,然后小芯片再的4412连接,这里我们直接看成,串口和4412芯片连接就可以了(忽略小芯片
我们直接看,和主芯片连接的引脚。(txd2 rxd2)
在这里插入图片描述
然后芯片手册去找这俩引脚(transmit 发送接口,RECIVE接收引脚)GPA1-0/GPA1-1
在这里插入图片描述

在这里插入图片描述
设置,GPA1CON[1]/GPA1CON[0]分别为uart的—txd 和rxd
所以 GPA1CON = 0X22 (不可以这样写)

设置成UART模式后就要去设置UART控制器的一些寄存器了。
在这里插入图片描述
这是uart下的所有寄存器,当然不是所有的都要设置,用那个就设置那个 (还有一些寄存器是只读的)
1)设置串口帧个格式
在这里插入图片描述
用8位,一个停止位,无校验位,正常模式(无红外)
ULCON2 [7-0] = 0000011
2)设置uart状态为轮询模式(UCON2)[3:0]

在这里插入图片描述
UCON2 [3:0] = 0101 (其他位不能被改变)

3)设置数据发送的波特率(UNRDIV2/UFRVCVAF)
在这里插入图片描述

在这里插入图片描述
波特率设置工式;
DATA = (100M/(11520016)-1) = 52.25
所以 UBRDIV = 52
UFRACVAL = 0.25
16 = 4
这样就全部配置好了。然后我们怎么去收发数据?
在这里插入图片描述
往UTXH2的BUFFER里面写值,往URXH2读里面BUFFER的值就可以了,那么现在的情况就是我怎么知道你的BUFFER里面有没有值,或者我怎么知道你的值写好了没有,写好了我就去发送(我们的电脑写数据比我们设置的波特率高非常多一倍这会导致我写一个数可能就发了还几个数过去了),有值我就去读取
在这里插入图片描述
我们使用buffer的状态寄存器(读取、写入寄存器)
uart transmit rcve stat(英语小天才)
在这里插入图片描述

作业:
在这里插入图片描述
纯手工手写,有问题请指教
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值