STMCU小助手
发布时间:2021-11-10 18:02
|
STM32G071串口编程 1.基本概念5 M$ n1 {$ h5 k5 X4 k USART/ UART (同步/异步)收发器 收发两个设备间需要同步发送时钟,叫同步收发器。4 R! Z9 u9 q: ?# q9 F& v$ J 接收设备的频率能自动匹配发送设备的频率,叫异步收发器。9 E# M: Y, H4 U7 Z 一般都用异步收发器/ r# v9 h8 ?5 j3 e# w 1.串口配置, W- ~$ s$ Q0 }
1.波特率 Baud Rate# R2 P8 a2 r: o: B, w) k 2.字节长度 Word Length 3.极性 Parity 4.停止位 Stop Bits8 `/ ]9 `+ t0 z, i( D( R3 A 使用默认参数即可,也可以更改成你需要的参数。 需要注意两个串口之间通讯,这些基本配置必须一致,才能正常通讯。# D7 D. w- R2 o6 l 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。
串口空闲时是高电平,开始位把电平拉低一个时钟。停止位是高电平。8 }4 B' T6 e7 \0 x* X 极性位是指校验位,是奇校验还是偶校验,默认情况是无校验。" k& @7 o: [. k9 n5 A8 O 高级配置; G1 C! E" v& q- H. c 过采样 :采用16次过采样应该是能更好的防误判,抗干扰。 - } t/ C" L" {1 J2 b 2.串口编程 结构体
Instance : 存放串口寄存器的数值。( [0 X' Y/ H+ ~- q# V7 N 7 D3 d E; H: `* G3 Q 串口发送 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);: V7 S X) R. k- M 函数参数中要指名是哪个串口,发送的字符串指针和发送的长度。 串口中断发送的函数。发送完成后,会发送串口中断,直接进入回调函数TxCpltCallback()。 串口发送时要注意两次发送不能离得太近,否则函数会自动退出,返回“HAL_BUSY”,如果是这样,记得下次轮回的时候再发送一遍。1 i) t& Y; T! V1 T1 g, V 串口发送还要注意串口没有发送完毕之前,不要使用串口发送的字符串数组,否则会莫名的改变发送的内容。& Q1 Q& C( S6 [ 3. STM32特殊功能/ Z `8 m- ^: I, I/ n6 j2 I3 g Z 1.串口FIFO . S+ g* T3 k& d$ g1 ~( Y8 s ! r# \% S' I/ P4 V: A |
微信公众号
手机版