请问HAL库中串口的Timeout参数具体代表什么意思?

2019-07-14 16:21发布

请问大家 HAL  库中, 串口的timeout 参数 具体代表什么意思  如何使用

1. HAL_StatusTypeDef HAL_USART_Receive (USART_HandleTypeDef * husart, uint8_t * pRxData, uint16_t Size, uint32_t Timeout)

Timeout  是超时限制 这个可以理解,  但是 问题是 它的单位是多少????

比如填个1    代表  1 什么?  1ms  还是1 us ?

另外  填0 呢?  不限时,  填 ffff 呢??

看了 HAL 的手册 都没有说清楚:





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
bin548
1楼-- · 2019-07-14 23:46
Oo一笑 发表于 2018-11-2 07:29
你自己再好好分析下。。 确实HAL库的说明太过于简单了。。。 还得靠你自己。。摸索。。

UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, Timeout)

谢谢你, 这个我已经找到 了 ,而且我知道

/**
* @brief uwTick_variable uwTick variable
*/
__IO uint32_t uwTick;

/**
  * @brief Provides a tick value in millisecond.
  * @note This function is declared as __weak to be overwritten in case of other
  *       implementations in user file.
  * @retval tick value
  */
__weak uint32_t HAL_GetTick(void)
{
  return uwTick;
}


但具体 uwTick 单位是什么呢???
Oo一笑
2楼-- · 2019-07-15 04:09
Tick 就是ms为单位的。。
陈囝囝100
3楼-- · 2019-07-15 04:47
签到  签到
ctx1129
4楼-- · 2019-07-15 10:01
HAL_GetTick();基于这个函数计时来比较是否超时,而HAL_GetTick()计数单位为ms,所以就是ms了。至于填多少,就得看你的波特率,接收发送数据大小大致估算下时间。
毛毛lallala
5楼-- · 2019-07-15 14:57
 精彩回答 2  元偷偷看……
bin548
6楼-- · 2019-07-15 19:49
毛毛lallala 发表于 2018-11-2 08:42
楼主问题解决了吗

可以参考 楼上的!!

1ms!!!

一周热门 更多>