STMCU小助手
发布时间:2021-11-10 18:02
|
STM32G071串口编程( V9 l$ ^6 I2 `; ` q/ n; G 1.基本概念 USART/ UART (同步/异步)收发器$ H: ]3 S/ @4 N7 g; y# W4 m 收发两个设备间需要同步发送时钟,叫同步收发器。 接收设备的频率能自动匹配发送设备的频率,叫异步收发器。 一般都用异步收发器. C! q V3 W& t: _ 1.串口配置
1.波特率 Baud Rate0 O, s+ Y* }5 Z( [. x- Y1 Z" z. r. W+ I 2.字节长度 Word Length 3.极性 Parity 4.停止位 Stop Bits7 L+ I# j4 v8 R. g: x: J6 ? 使用默认参数即可,也可以更改成你需要的参数。 需要注意两个串口之间通讯,这些基本配置必须一致,才能正常通讯。, U% P; d& [6 ^& w" z0 u 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。, `5 [( i6 B% E! w; _. p
2 c7 j" {9 H; r! i 串口空闲时是高电平,开始位把电平拉低一个时钟。停止位是高电平。4 z% v$ s, I! _1 z9 |& s# k 极性位是指校验位,是奇校验还是偶校验,默认情况是无校验。% D* k: J! T9 C7 r9 M- G, y# s 2 R- Y0 q8 x" E6 i8 ^0 M [* S* ~ 高级配置" o Z( E/ T1 r# w4 \6 C) i 过采样 :采用16次过采样应该是能更好的防误判,抗干扰。, ~! ~4 f5 C1 y! | 2.串口编程+ Z" a6 C) h0 S' k2 N 结构体
Instance : 存放串口寄存器的数值。3 [) j$ ?9 F3 q$ c. `" { x 9 h( E8 R, e) |! t! U 串口发送0 \- Y, j9 O: o8 ~) r5 T; g HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); 函数参数中要指名是哪个串口,发送的字符串指针和发送的长度。) x6 h% ]6 J7 c8 }1 i- ?# I7 Z 串口中断发送的函数。发送完成后,会发送串口中断,直接进入回调函数TxCpltCallback()。 串口发送时要注意两次发送不能离得太近,否则函数会自动退出,返回“HAL_BUSY”,如果是这样,记得下次轮回的时候再发送一遍。 串口发送还要注意串口没有发送完毕之前,不要使用串口发送的字符串数组,否则会莫名的改变发送的内容。( R3 z4 P5 {7 R0 `0 f ]& Z3 j$ a 3. STM32特殊功能 1.串口FIFO : K$ D0 `+ ^! A6 ^5 b T* |) X2 Y# E |
微信公众号
手机版