STMCU小助手
发布时间:2021-11-10 18:02
|
STM32G071串口编程 1.基本概念 USART/ UART (同步/异步)收发器$ ]% t' q7 K0 r3 } 收发两个设备间需要同步发送时钟,叫同步收发器。$ @7 g8 E! W8 N+ Z: z* Q1 H 接收设备的频率能自动匹配发送设备的频率,叫异步收发器。2 q% v/ k6 J2 y" f6 ? 一般都用异步收发器 1.串口配置" c8 N a( u; E, K1 w4 J. C% Y
1.波特率 Baud Rate 2.字节长度 Word Length 3.极性 Parity 4.停止位 Stop Bits 使用默认参数即可,也可以更改成你需要的参数。 需要注意两个串口之间通讯,这些基本配置必须一致,才能正常通讯。6 z# S: _& H: y8 k3 s 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。7 |; U. |" T: N' C
; t( j$ L$ u+ \" C1 L4 q5 C/ ? 串口空闲时是高电平,开始位把电平拉低一个时钟。停止位是高电平。 极性位是指校验位,是奇校验还是偶校验,默认情况是无校验。 高级配置% `6 b" u" M7 H6 H) Y2 ] 过采样 :采用16次过采样应该是能更好的防误判,抗干扰。- u4 V8 b* c/ }. f 2.串口编程 结构体4 x! l ?7 P( M8 \2 D4 p
Instance : 存放串口寄存器的数值。 串口发送/ m' V+ [! J4 O; _: |3 ` HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size); 函数参数中要指名是哪个串口,发送的字符串指针和发送的长度。, P- ^4 J( ]3 C7 C 串口中断发送的函数。发送完成后,会发送串口中断,直接进入回调函数TxCpltCallback()。* B* M' P: b* F) Q# O0 F/ Y 串口发送时要注意两次发送不能离得太近,否则函数会自动退出,返回“HAL_BUSY”,如果是这样,记得下次轮回的时候再发送一遍。/ n% M5 z: D7 ` 串口发送还要注意串口没有发送完毕之前,不要使用串口发送的字符串数组,否则会莫名的改变发送的内容。 $ |5 S4 t) v6 n9 b5 D 3. STM32特殊功能 1.串口FIFO2 O! H3 J0 Q; O5 ? $ m0 |% j6 r' y, G0 n+ C, \2 W |
微信公众号
手机版