STM32HAL轮询模式串口接收函数超时等待问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32HAL轮询模式串口接收函数超时等待问题?相关的知识,希望对你有一定的参考价值。
while(1)
if(HAL_UART_Receive(&huart1,RecBuf,1,100)== HAL_OK)
……
HAL_GPIO_WritePin(Beep_GPIO_Port,Beep_Pin,GPIO_PIN_RESET)
在判断这个条件是否成立时,超时等待时间我设置成100ms,同时把蜂鸣器打开。我想问在判断时,这100ms超时等待时间内是不是单片机其他工作就停下不做了?因为原先设想是蜂鸣器一直响,然后用轮询方式检测串口是否接收到数据,但现在蜂鸣器响声有明显间隔(即100ms),当我把超时等待时间设置成无限等待,蜂鸣器干脆就不响了,这时候单片机内部啥也不做就等着串口接收数据吗?
如果你不需要阻塞式查询工作方式,就应当选用中断工作方式,改用 HAL_UART_Receive_IT()函数并配置对应的NVIC模块、调用对应的中断服务函数并且钩上对应的回调。
以上是关于STM32HAL轮询模式串口接收函数超时等待问题?的主要内容,如果未能解决你的问题,请参考以下文章