USART-通用同步异步收发器相关知识的介绍





为什么电平要多一些哪?是为了增加串口的远距离传输和串口的抗干扰能力




校验位

F1/F4/F7/串口差不多


H7串口

USART使用代码讲解
第17讲-通用同步异步收发器(USART)2
串口收发


建工程注意


默认引脚的复用功能

可在数据手册的引脚复用功能中查看

第17讲-通用同步异步收发器(USART)3
初始化hal库stm32f2xx_hal.c文件
@verbatim
===============================================================================
#####初始化和反初始化函数#####
===============================================================================
(. .本节提供的函数允许:
(+)初始化Flash接口、NVIC分配和初始时钟
配置。当需要超时时,它也会初始化系统
和备份域时启用。
(+)去初始化HAL的公共部分。
(+)配置时基源为1ms时基,具有专用的时基
勾中断优先级。
(++) SysTick定时器默认使用作为时间基准的源,但用户
最终可以实现他适当的时间基础源(通用
例如定时器或其他时间源),请记住time base
duration应该保持1ms,因为PPP_TIMEOUT_VALUEs已经定义
以毫秒为单位处理。
(++)自动调用时基配置函数(HAL_InitTick ())
在HAL_Init()重置后的程序开始或任何时候
当时钟配置时,由HAL_RCC_ClockConfig()。
(++)配置时基源以定期生成中断
时间间隔。调用HAL_Delay()时必须小心
外围ISR进程,Tick中断线必须具有更高的优先级
(数值低)比外围中断。否则调用者
ISR进程将被阻塞。
(++)影响时基配置的函数声明为__weak
在用户文件中的其他实现情况下使重写成为可能。
@endverbatim
* @ {
* /
/**
这个函数用于初始化HAL库;它一定是第一个
*在主程序中执行的指令(在调用任何其他指令之前)
* HAL函数),它执行如下:
*配置Flash预取。
*配置SysTick产生中断每1毫秒,
*由恒生指数计时(在这个阶段,时钟还没有
*配置,因此系统从内部HSI运行在16mhz)。
*“NVIC Group Priority”设置为“4”。
调用用户文件中定义的HAL_MspInit()回调函数
*“stm32f1xx_hal_msp.c”进行全局底层硬件初始化
*
* @note SysTick被用作HAL_Delay()函数的时间基础,应用程序
*需要确保SysTick时间基准始终设置为1毫秒
*有正确的HAL操作。
* @retval HAL状态

一、定义一个UART_HandleTypeDef结构体句柄
二、通过HAL_UART_Msplnit函数来实现串口外设的底层初始化
要做什么功能:
使能UART外设时钟开启
配置UART引脚模式
如果要中断配置中断
如果要用DMA,就配置DMA
三、通过前面的结构体具备,来配置串口的波特、数据字长、停止位、奇偶校验位、硬件流控制。
四、通过调用HAL_UART_lnit函数,来讲串口配置为异步模式