串口通信中关键知识点4

简介: 串口通信中关键知识点4

  串口基本配置的寄存器,配置过程总结为:


1、串口时钟使能。这里的串口1设置是APB2ENR寄存器的第4位。


2、串口波特率设置。每个串口都有一个自己独立的波特 率寄存器 USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的。


3、串口控制。STM32F429 的每个串口都有 3 个控制寄存器 USART_CR1~3,串口的很多 配置都是通过这 3 个寄存器来设置的。这里我们只要用到 USART_CR1 就可以实现我们的功能。


4、数据发送与接收。STM32F429 的发送与接收是通过数据寄存器 USART_DR 来实现的, 这是一个双寄存器,包含了 TDR 和 RDR。


5、串口状态。串口的状态可以通过状态寄存器 USART_SR 读取。


    思考:假如用HAL库进行配置的话,实现过程是什么?

第一:初始化函数 HAL_UART_Init 相关函数:


    HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);


   解释:函数只有一个入口参数 huart,为 UART_HandleTypeDef 结构体指针类型,称为:句柄。

第二:使能串口和 GPIO 口时钟


  使用串口,我们必须使能串口时钟和使用到的 GPIO 口时钟。

__HAL_RCC_USART1_CLK_ENABLE(); //使能 USART1 时钟                                 __HAL_RCC_GPIOA_CLK_ENABLE(); //使能 GPIOA 时钟


第三:GPIO 口初始化设置(速度,上下拉等)以及复用映射配置


GPIO_InitTypeDef GPIO_Initure;


GPIO_Initure.Pin=GPIO_PIN_9|GPIO_PIN_10; //PA9/PA10 GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出


GPIO_Initure.Pull=GPIO_PULLUP; //上拉


GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速


GPIO_Initure.Alternate=GPIO_AF7_USART1; //复用为 USART1 HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化 PA9/PA10

第四:开启串口相关中断,配置串口中断优先级


__HAL_UART_ENABLE_IT(huart,UART_IT_RXNE); //开启接收完成中断


第一个参数:huart为串口句柄     第二个参数:要开启的中断类型。

__HAL_UART_DISABLE_IT(huart,UART_IT_RXNE); //关闭接收完成中断


HAL_NVIC_EnableIRQ(USART1_IRQn); //使能 USART1 中断通道 HAL_NVIC_SetPriority(USART1_IRQn,3,3); //抢占优先级 3,子优先级3


第五:编写中断服务函数

void USART1_IRQHandler(void);


第六:串口数据接收和发送

发送与接收是通过数据寄存器 USART_DR 来实现。当向该寄存器写数据的时候,串口就会自动发送,当收到数据的时候,也 是存在该寄存器内。


HAL 库操作 USART_DR 寄存器发送数据的函数是:


HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);


通过该函数向串口寄存器 USART_DR 写入一个数据:


HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);

目录
相关文章
|
6月前
|
监控 数据处理 开发工具
单片机的C51基础知识介绍2
三、单片机的开发流程和工具 单片机的开发流程通常包括以下几个步骤: 硬件设计:根据应用需求,设计和选择合适的外部电路和接口电路,包括时钟电路、输入输出电路、存储器等。 软件开发:根据应用需求,使用相应的开发工具和编程语言进行软件开发,如C语言、汇编语言等。开发人员需要编写相应的代码,实现系统的功能和控制。 编译和烧录:将开发好的软件代码进行编译和链接,生成可执行的机器代码。然后将机器代码通过编程器烧录到单片机的存储器中。 调试和测试:将烧录好的单片机进行调试和测试,验证系统的功能和性能是否符合要求。可以通过调试工具和示波器等设备进行调试和测试。 单片机的开发工具和软件包括: 开发板
42 0
|
1天前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
8 1
|
25天前
|
存储 编译器 C语言
单片机学习之路一些常见的疑问也是我的个人学习总结
单片机学习之路一些常见的疑问也是我的个人学习总结
|
3月前
|
数据格式
串口通信知识点总结
串口通信知识点总结
|
6月前
|
芯片
矩阵键盘原理及程序设计
本文详细介绍了矩阵键盘是什么,主要应用场景,替代品,矩阵键盘的优缺点以及矩阵键盘的按键检测方法。最后附上了以STM32F103系列芯片为例的C程序。
200 2
|
6月前
|
存储 编译器 开发工具
单片机的C51基础知识介绍1
C51是指Intel公司推出的一款8位单片机,它的全称是Intel MCS-51系列单片机,也被称为8051系列单片机。C51系列单片机是一种非常经典和常用的单片机,具有广泛的应用领域和丰富的资源支持。下面将介绍C51单片机的基础知识。 一、C51单片机的特点和优势 1. 8位架构:C51单片机采用8位架构,即每个数据位的宽度为8位,能够处理8位的数据,适用于大部分嵌入式应用。 2. 高度集成:C51单片机具有高度集成的特点,包括CPU、存储器、输入输出端口、定时器、串口等功能模块,能够满足大多数应用的需求。 3. 低功耗设计:C51单片机采用低功耗设计,能够在低电压和低功耗的环境下正常工作,
160 0
|
11月前
STM32的串口固件库编程归纳
STM32的串口固件库编程归纳
53 0
|
传感器 机器人 芯片
智能小车知识点总结
智能小车知识点总结
109 0
|
缓存
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
290 0
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析
209 0
蓝桥杯之单片机学习(十二)——串口通信进阶应用案例解析