当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > 嵌入式学习笔记:ARM串口通信详解

嵌入式学习笔记:ARM串口通信详解 时间:2018-09-14      来源:未知

一、串行通信相关概念

单工,双工,半双工,全双工

同步(有时钟线),异步

波特率,比特率(bps)

二、用串口实现字符回显

1> 确定想用哪个COM口(自己定,比如COM2)

2> 看板子,找到那个COM口,板子上印的名字是CON7 3> 查看原理图找到CON7对应的GPIO管脚

a> 看开发板的原理图,在开发板原理图里面找CON7,发现对应的接线BUF_XuTXD2/UART_AUDIO_TXD

b> 查找BUF_XuTXD2/UART_AUDIO_TXD,发现它接的是开发板的CON4

c> 查找XuTXD2/UART_AUDIO_TXD,发现接的是CON4的56脚(此信息来源可以咨询硬件工程师,或者自己从板子上找,可能需要把核心板和开发板分离才看得到)

e> 去核心板的原理图去继续找XuTXD2/UART_AUDIO_TXD,能找到它对应的是GPA1_1管脚

f> 同理可得,还有一根线对应的是GPA1_0管脚

4> 查看芯片手册,看GPA1是怎么用的

配置GPA1CON就可以了,需要把GPA1_0和GPA1_1配置成UART模式,对应的是UART2

(通过学习芯片手册,或者通过参考别人的程序,或者参考芯片公司提供的参考方案,或者请教有经验的人)

5> 查看芯片手册,看UART2是怎么用的,第28章

(通过学习芯片手册,或者通过参考别人的程序,或者参考芯片公司提供的参考方案,或者请教有经验的人)

6> 编写程序

a> 先搭框架:简单区分驱动部分和应用部分

驱动部分提供 init ReceiveFromUart SendToUart

应用部分:循环里面去读,读到就马上显示,从而实现回显功能 b> 函数具体实现

init:1. 配置管脚为UART模式;2. 配置UART的数据位,停止位,校验位,波特率等;

ReceiveFromUart:判断接受缓存寄存器是不是包含的有效数据,若有,读,没有就死等

SendToUart:判断发送缓存寄存器是不是空,若空,发送,不空就死等

main:死循环去读ReceiveFromUart,读到了就SendToUart c> 编译程序 make

d> 下载编译好的程序到板子的内存里运行

串口实现字符回显:

需求分析结果:

一、配置

1 配置管脚为UART模式

2 串口数据格式(数据位奇偶校验位停止位)

3 uart收发数据的方式

4 波特率

二、数据的收发

1 数据从哪里收?哪里发?

2 收发动作触发(何时收?何时发?)硬件接线:

1、

可以从开发板上查到con7的收发数据

UART_AUDIO_TXD(发数据)和UART_AUDIO_RXD(收数据),连接到

开发板con4上

2、

3、

在核心板con3上找到UART_AUDIO_TXD(发数据)和UART_AUDIO_RXD(收数据)
4、

在核心板U1A上找到串口收发数据接到GPA1_0和GPA1_1上查手册配寄存器:

一:配置。

1、把GPA1_0和GPA1_1配置成UART模式

2:串口的数据格式

3:UART收、发数据的方式


4:波特率

小数部分:

整数部分:

如何计算的:

已知:波特率要配成115200,时钟频率SCLK_UART=100M

公式:DIV_VAL = (SCLK_UART/(bps *16))- 1 芯片手册上有

计算:DIV_VAL= 100 000 000/115200/16 -1 = 53.25 整数部分保存在UBRDIV=53

小数部分保存在 UFRACVAL2 = 0.25*16 = 4 二:数据收发

1、从哪里发,从哪里收?

2、什么时候收?什么时候发?

上一篇:嵌入式学习笔记:arm按键中断实现流程

下一篇:嵌入式学习笔记: 指令和伪指令的区别

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部