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

[复制链接]
393|79
埃娃 发表于 2026-6-8 20:40 | 显示全部楼层
设置timeout为-1,就是让HAL_UART_Transmit函数进入阻塞模式,直到数据全部发送完毕才返回。适用于主循环只负责发送数据的场景。
Undshing 发表于 2026-6-9 10:36 | 显示全部楼层
写-1是让HAL_UART_Transmit无限等待,直到发送完成或出错。适合发送大量数据且不关心实时性的场景。
Moon月 发表于 2026-6-9 20:16 | 显示全部楼层
内容里提到“标准配置”并非代码中的固定配置,可能是指硬件或软件的配置可以根据实际需求调整。
MintMilk 发表于 2026-6-11 15:18 | 显示全部楼层
设置timeout为-1可能导致系统无法响应,要小心避免这种设置。
哪吒哪吒 发表于 2026-6-14 08:26 | 显示全部楼层
循环中单片机短暂休息,但整体操作还是被阻塞。
星闪动力 发表于 2026-6-16 14:27 | 显示全部楼层
程序只负责等待发送任务,不处理其他事务。
AloneKaven 发表于 2026-6-17 17:13 | 显示全部楼层
Timeout写-1是设置无限阻塞模式,确保数据全部发送完成,防止数据发送未完成就退出。适合发送大量数据时用。
狄克爱老虎油 发表于 2026-6-18 22:33 | 显示全部楼层
设置timeout为-1,就是让HAL_UART_Transmit函数进入阻塞模式,直到数据全部发送完毕才返回。适用于数据发送必须完成的应用场景。
LinkMe 发表于 2026-6-19 19:18 | 显示全部楼层
检查定时器设置,确保时间足够;增加延时或重试次数;检查外部因素,如干扰或资源竞争。
Bowclad 发表于 2026-6-20 20:48 | 显示全部楼层
设置-1是为了实现阻塞发送,确保数据完全发送完毕才退出函数,适用于不需要处理其他任务时。
物联万物互联 发表于 2026-6-22 11:03 | 显示全部楼层
这个函数会让程序暂停,直到数据传完才继续,不用担心超时问题。
CarterERO 发表于 2026-6-23 18:22 | 显示全部楼层
设-1确实是无限等待,适用于主循环只等待发送的场景。
FranklinUNK 发表于 2026-6-24 12:33 | 显示全部楼层
设置-1是为了实现阻塞发送,确保数据完全发送后再继续执行,适用于数据必须完全发送的场景。
zephyr9 发表于 2026-6-30 10:17 | 显示全部楼层
根据应用需求,通常设置超时时间为系统响应时间的1.5到2倍。
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超时表示无限等待,适合数据必须全部发送完成的场景,防止数据丢失。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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