STM32|STM32 HAL库的串口使用__HAL_LOCK(huart)
在使用HAL库的时候发现同一串口的接收和发送如果同时进行的话会发生问题,因为
如果用调用下面的函数
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
进行接收串口数据的时候,有可能
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
也正在进行中,而这两个函数都会对串口资源上锁
__HAL_LOCK(huart);
导致中断接收函数 HAL_StatusTypeDef HAL_UART_Receive_IT返回hal_busy; 没有正常的执行,所以串口接收中断也没有打开,再也接收不到下一个字节了。
我简单粗爆的把 __HAL_LOCK(huart); 注释掉了。
【STM32|STM32 HAL库的串口使用__HAL_LOCK(huart)】转载于:https://www.cnblogs.com/jackweibe/p/7279212.html
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 太平之莲
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 我正在参加安特思库共读一本书干法。
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- 现役联盟前十怎么排(詹姆斯榜首无悬念!杜兰特库里位置不确定!)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 数据库设计与优化
- 数据库总结语句
- py连接mysql