STMCU小助手
发布时间:2022-5-7 17:37
|
标准库函数对每个外设都建立了一个初始化结构体,比如 USART_InitTypeDef,结构体成员用于 设置外设工作参数,并由外设初始化配置函数,比如 USART_Init() 调用,这些设定参数将会设置* l; T- z, E {; v V' ~ 外设相应的寄存器,达到配置外设工作环境的目的。 ! ]- T4 k# @$ Y3 |% C2 ] 初始化结构体定义在 stm32f4xx_usart.h 文件中,初始化库函数定义在 stm32f4xx_usart.c 文件中. USART 初始化结构体 参考正点原子和野火手册* F, ]9 F; G0 L: A
USART_BaudRate:波特率设置。一般设置为 2400、9600、19200、115200。标准库函数会根据2 |" i1 e$ ~5 ?. c( E 设定值计算得到 USARTDIV 值,并设置 USART_BRR 寄存器值。 6 Z+ X: Y6 L% ~6 ?: j USART_WordLength:数据帧字长,可选 8 位或 9 位。它设定 USART_CR1 寄存器的 M 位的值。 如果没有使能奇偶校验控制,一般使用 8 数据位;如果使能了奇偶校验则一般设置为 9 数据位。: d4 ~/ K, k: }" f USART_StopBits:停止位设置,可选 0.5 个、1 个、1.5 个和 2 个停止位,它设定 USART_CR2, B! A- Z3 [$ a0 O" l% _ 寄存器的 STOP[1:0] 位的值,一般我们选择 1 个停止位。 2 ?0 L: Y) Q( K( z4 P- ` USART_Parity:奇偶校验控制选择,可选 USART_Parity_No(无校验)、USART_Parity_Even(偶 校验) 以及 USART_Parity_Odd(奇校验),它设定 USART_CR1 寄存器的 PCE 位和 PS 位的值。9 E1 D3 J3 ~# T$ Q/ S, P USART_Mode:USART 模式选择,有 USART_Mode_Rx 和 USART_Mode_Tx,允许使用逻辑或 运算选择两个,它设定 USART_CR1 寄存器的 RE 位和 TE 位。 / k% `+ O* g# B) t) }% [: y USART_HardwareFlowControl:硬件流控制选择,只有在硬件流控制模式才有效,可选有使能 RTS、使能 CTS、 同时使能 RTS 和 CTS、不使能硬件流。6 E! l9 c$ ~) h1 z6 m7 u, Q8 G USART 时钟初始化结构体4 b# u5 o( I$ X; r+ b ) a* i( z+ a* e7 s/ I+ C
1) USART_Clock:同步模式下 SCLK 引脚上时钟输出使能控制,可选禁止时钟输出(USART_Clock_Disable) 或开启时钟输出 (USART_Clock_Enable);如果使用同步模式发送,一般都需要开启时钟。它设定 USART_CR2 寄存器的 CLKEN 位的值。 ) _7 { {; N' h6 D2 ^* @ USART_CPOL:同步模式下 SCLK 引脚上输出时钟极性设置,可设置在空闲时 SCLK 引脚为低电平 (USART_CPOL_Low) 或高电平 (USART_CPOL_High)。它设定 USART_CR2 寄存器的 CPOL位的值。 ( K. x0 w+ k p: M USART_CPHA:同步模式下 SCLK 引脚上输出时钟相位设置,可设置在时钟第一个变化沿捕获数据 (USART_CPHA_1Edge) 或在时钟第二个变化沿捕获数据。它设定 USART_CR2 寄存器的CPHA 位的值。USART_CPHA 与 USART_CPOL 配合使用可以获得多种模式时钟关系。0 A: v# o" p0 ^2 v 9 m) @. ^5 P) g' Q9 j5 n USART_LastBit:选择在发送最后一个数据位的时候时钟脉冲是否在 SCLK 引脚输出,可以是不输出脉冲 (USART_LastBit_Disable)、输出脉冲 (USART_LastBit_Enable)。它设定 USART_CR2 寄存器的 LBCL 位的值。. B6 i( h) y- }" w: [; W& u0 z* o ! |; _+ A& l# ?6 o9 ] |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版