STMCU小助手
发布时间:2021-11-10 18:02
|
STM32G071串口编程 1.基本概念. D2 O+ m. T* W' \" R' } USART/ UART (同步/异步)收发器 收发两个设备间需要同步发送时钟,叫同步收发器。- \2 M7 J' k6 a 接收设备的频率能自动匹配发送设备的频率,叫异步收发器。7 v$ g% Y- Q- Q! [7 d9 B9 A" Z; l 一般都用异步收发器 1.串口配置$ \: t5 \4 J2 ^* n8 v3 G& s
1.波特率 Baud Rate 2.字节长度 Word Length3 F# e) k9 [/ c) @- _ 3.极性 Parity# ?; l9 U2 D$ A( g0 X 4.停止位 Stop Bits: o) m0 i& `7 M5 t: X% n; U 使用默认参数即可,也可以更改成你需要的参数。 _3 ^! O d! V8 U( Q 需要注意两个串口之间通讯,这些基本配置必须一致,才能正常通讯。 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。* @# o8 c, {1 t/ F- M8 b
1 H2 g/ ]" X! n" V& C4 N1 ?& V( H 串口空闲时是高电平,开始位把电平拉低一个时钟。停止位是高电平。 极性位是指校验位,是奇校验还是偶校验,默认情况是无校验。 高级配置6 q8 Y4 v6 x- y& ?; U6 F' U" w 过采样 :采用16次过采样应该是能更好的防误判,抗干扰。 8 h$ N+ e/ d% `5 { 2.串口编程 结构体
Instance : 存放串口寄存器的数值。 : M: B, u; {1 b2 V G _3 a 串口发送 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);1 A( ^6 ]" c2 X- ]5 c# E/ k4 M4 v/ } 函数参数中要指名是哪个串口,发送的字符串指针和发送的长度。! k" n8 w6 ?8 L- Q6 m$ w. b8 t5 I9 u 串口中断发送的函数。发送完成后,会发送串口中断,直接进入回调函数TxCpltCallback()。 串口发送时要注意两次发送不能离得太近,否则函数会自动退出,返回“HAL_BUSY”,如果是这样,记得下次轮回的时候再发送一遍。5 ?- [1 g j) x6 l# G2 a, | 串口发送还要注意串口没有发送完毕之前,不要使用串口发送的字符串数组,否则会莫名的改变发送的内容。/ \1 Z3 G B1 c8 c6 E, A& P 3. STM32特殊功能 1.串口FIFO % l' ^" H$ S, B |
微信公众号
手机版