[STM32F1] HAL_UART_Transmit 函数中 timeout 参数写 -1 的作用是什么?

[复制链接]
326|70
xixi2017 发表于 2026-7-1 09:44 | 显示全部楼层
HAL 库内部循环等待发送完成,超过 Timeout 毫秒没发完直接返回 HAL_TIMEOUT。
班杰明 发表于 2026-7-1 12:45 | 显示全部楼层
-1表示无限等待,适合发送大量数据且主循环无需处理其他任务的情况。
dreamCar 发表于 2026-7-1 21:23 | 显示全部楼层
timeout参数通常用于设置等待某个操作完成的时间。其他取值表示等待的秒数,若超过这个时间还没完成,则触发超时。
Henryko 发表于 2026-7-2 11:20 | 显示全部楼层
写-1表示无限等待,确保数据完全发送。但注意,如果数据量巨大,可能导致程序响应变慢。
xinpian101 发表于 2026-7-2 14:29 | 显示全部楼层
在单片机正常运行场景下:程序几乎不可能等到超时触发。
MessageRing 发表于 2026-7-3 17:10 | 显示全部楼层
-1超时表示无限等待,适合数据必须全部发送完成的场景,防止数据丢失。
SophiaOP 发表于 2026-7-4 21:07 | 显示全部楼层
写-1就是无限等待,适合主循环就等发送完成的场景。记得检查串口状态寄存器,防止数据丢失。
单芯多芯 发表于 2026-7-5 14:17 | 显示全部楼层
可以通过串口接收缓冲区检查是否有数据,或者使用串口通信协议中的应答信号来判断发送是否正常。
ClarkLLOTP 发表于 2026-7-6 12:01 | 显示全部楼层
设置为-1是为了让函数在数据完全发送完成之前保持阻塞,避免在数据未发送完毕时退出。
digit0 发表于 2026-7-7 15:08 | 显示全部楼层
设置timeout是为了限制函数在等待发送完成时不会无限期等待,确保程序不会因为等待过久而停滞。
EmmaTT 发表于 2026-7-8 12:42 | 显示全部楼层
设置 -1 是为了阻塞式发送,保证数据全部发送完毕才返回,适合主循环只做发送任务的情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0