【铁头山羊STM32】HAL库 2.UART部分

目录

一、基础知识

二、单片机简单数据发送至电脑

1.安装串口调试助手

2.STM32CubeMX操作

3.硬件操作

4.串口调试助手设置

5.keil操作

三、单片机的简单数据接收

1.设置PC13引脚

2.生成代码

3.【原理】如何通过串口接收数据?

4.实践证明:


一、基础知识

两设备间通信:

Tx(Transmit);Rx(Receive)

每个设备都有发送/接收引脚,并且交叉连接,

但是数据的收发需要遵从一定的格式:

起始位有1位,

数据位一般有8或9位,停止位有0.5、1、1.5、2位,

比方说我要发送"01100100"这串数据,

在信号里就表示为"低高高低低高低低"电平的变化,

到了停止位一般要有一串相应位的高电平状态来判定是否结束。

在市面上,

有四种数据帧格式,

因为传输有效数据是8位的原因,

打绿勾的更为常用:

有校验位的数据,

比如说奇校验,

必须要有奇数个1,

这段数据才能被判定为合法,

如果我的数据是"10101010"时,

有4个"1",

此时校验位会自动补一个"1",

从而这串数据里的"1"的个数为奇数个,

从而校验成功;

若"10101010"传输时出错,

变为"10111010"时,

校验位从一开始就变成了"1",

此时这段数据的"1"有偶数个,

那么这段数据就校验失败:

波特率越高,数据的传输速度越快,注意收发双方要选择相同的波特率:

STM32单片机里有UART和USART两种类型的串口:

异步指通常意义上的串口;

同步工作模式更少用,多了根时钟线,收发双方便可以同步起来。


二、单片机简单数据发送至电脑

(串口向电脑发送数据)

1.安装串口调试助手

通过USB转TTL模块就可以实现单片机与电脑的连接,并传输数据了:

2.STM32CubeMX操作

选择芯片------选择调试串口------选择左侧的"Connectivity"(连接性),

可以看到单片机有三个串口USART1、USART2、USART3:

Mode表示工作模式,我们需要为串口选择工作模式:

这里除了异步模式,其他模式我们都用不到,

选择异步模式后可以看到,

cubeMX自动为我们分配好了USART的引脚:

USART1_Tx位于PA9,USART1_Rx位于PA10。

此时还可以看到,在界面的中底部,出现了一些参数:

如果没有特殊要求一般选择收发双向。

此时,我们根据我们的选择来设置就好(即模式设置·):

依次点击System Cores------GPIO------USART,

可以发现,CubeMX已经为我们自动配好了引脚参数

这里我们按照默认设置,不做调整。

点击Project Manager,

输入名字、位置、工具链:

点击生成代码。

3.硬件操作

根据CubeMX的设置,将硬件如下连接:

注意,这里USB TO TTL模块中的TXD与单片机的RX(PA10)引脚相连,RXD与单片机的Tx(PA9)相连(交叉连接)

4.串口调试助手设置

串口收发双方的数据帧格式应该一致,并打开串口:

如何知道自己串口号是否正确呢?

拔下来再插上去,看哪个串口号突然出现。

5.keil操作

代码解释如下,

我们只用知道cubeMX给我们生成了一个句柄叫UART1。

现在,来学习一个新的编程接口:

那么该如何使用呢?

关闭代码优化:

依次点击:编译代码------调试代码

鼠标右键点击数据发送的代码行,选择"Run to Cursor line":

打开串口调试助手,点击HEX,以16进制的格式接受数据:

点击单步执行:

可以发现串口调试助手会收到一个数据:

再将串口调试助手转换为ASC2码格式,以字符格式接收数据:

再次点击单步执行:

会发现接收到了字符数据:


三、单片机的简单数据接收

CubeMX设置、串口调试助手设置、硬件连接设置如上节所示。

本次实验我们需要使用串口控制板载LED:

1.设置PC13引脚

PC13引脚设置为输出:

高初始电压、输出开漏模式、最大输出速度为低速:

2.生成代码

3.【原理】如何通过串口接收数据?

那么如何实现接收到数据并控制灯的亮灭呢?

4.实践证明:

编译------下载------按复位按钮

打开串口调试助手,选择ASC2码格式:

依次发送0和1,发现1亮0灭:

相关推荐
乡野码圣2 小时前
【RK3588 Android12】高精度定时器hrtimer
单片机·嵌入式硬件
小痞同学3 小时前
【铁头山羊STM32】HAL库 3.I2C部分
stm32·单片机·嵌入式硬件
蝎蟹居3 小时前
GBT 4706.1-2024逐句解读系列(29) 第7.9~7.10条款:开关,档位应明确标识
人工智能·单片机·嵌入式硬件·物联网·安全
梁洪飞3 小时前
pmu+power控制+pmic
arm开发·嵌入式硬件·arm
nnerddboy4 小时前
嵌入式面试题:2.模电、数电
单片机·嵌入式硬件
爱吃苹果的梨叔4 小时前
NTP 网络时间服务器硬件驯服技术说明(投标技术响应说明)
linux·运维·服务器·网络·嵌入式硬件·tcp/ip
安庆平.Я4 小时前
STM32——定时器:基本定时器
stm32·单片机·嵌入式硬件
Nautiluss4 小时前
一起调试XVF3800麦克风阵列(十六)
人工智能·单片机·音频·语音识别·dsp开发·智能硬件
Hello_Embed4 小时前
串口面向对象封装实例
笔记·stm32·单片机·学习·操作系统