蓝桥杯嵌入式学习(八)UART

一.引言

串口通信是指通过串行接口进行数据传输的一种通信方式。

串口通信原理

1.串口硬件连接

串口通信需要将数据线和控制线连接到两个设备之间的串行接口。通常串口包括两个数据线(发送线和接收线)和多个控制线(时钟线,使能线,数据位线,校验位线和停止位线)

2.串口通信协议

在串口通信中,通常需要使用一种特定的通信协议,如如RS-232、RS-485、UART等。这些协议规定了数据的传输格式,时钟速率,数据位数,校验方式等

3.数据传输

在串口通信中,数据是以数据包的形式传输的。发送方首先将数据包按照通信协议的规定形式封装,并通过发送线发送给接收方。接收方则通过接收线接收数据包,并解析数据包中的数据。在传送过程中发送方和接收方需要保持一致的通信协议和参数设置

4.错误校验

为了保证数据传输的准确性,通常会在数据包中添加一些校验位,如奇偶校验位,循环冗余校验等接收方在接收到数据包后会检验校验位,如果校验错误则表示数据包有误,需要重新传输

5.通信控制

串口通信中,通常需要一种通信控制方式来确保发送方和接收方的数据传输同步。常见的通信控制方式有硬件握手和软件握手。硬件握手是通过控制线来进行数据传输的控制,软件握手是通过发送特定的控制字符来进行控制。

二.cubeM配置

参考数据手册

蓝桥杯嵌入式学习(八)UART_第1张图片

配置PA9,PA10分别为串口接收,发送引脚

蓝桥杯嵌入式学习(八)UART_第2张图片

配置工作模式为异步收发模式,并修改波特率为9600

蓝桥杯嵌入式学习(八)UART_第3张图片

打开接收中断

蓝桥杯嵌入式学习(八)UART_第4张图片

三.代码编写

发送示例代码

蓝桥杯嵌入式学习(八)UART_第5张图片

发送数据需要添加一个重定向函数才能发送成功

蓝桥杯嵌入式学习(八)UART_第6张图片

接收数据示例代码

接收中断回调函数

蓝桥杯嵌入式学习(八)UART_第7张图片

需要在主函数初始化函数部分将接收中断打开

HAL_UART_Receive_IT(&huart1,&rxdat,1);

串口接收函数(以12届串口部分真题为参考)

蓝桥杯嵌入式学习(八)UART_第8张图片

然后在主函数的while函数中调用就可以了

蓝桥杯嵌入式学习(八)UART_第9张图片

你可能感兴趣的:(学习)