请问stm32l4xx_hal_uart.c文件中的_HAL_LOCK(huart)函数有什么用

2019-07-14 14:30发布

STM32L4xx的HAL库里面的stm32l4xx_hal_uart.c文件中HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)函数里有__HAL_LOCK(huart);和__HAL_UNLOCK(huart);配合使用的,具体是什么作用?为什么要在这个函数里面添加这样的代码?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
yijun362
1楼-- · 2019-07-14 23:00
 精彩回答 2  元偷偷看……
骑猪去天山
2楼-- · 2019-07-15 02:22
楼上正解
60user16
3楼-- · 2019-07-15 03:28
yijun362 发表于 2019-1-18 06:55
这设计到多任务中函数重入和资源争夺的问题
__HAL_LOCK();其实就是OS中的互斥变量mutex,用来保证资源的使用唯一性

看到串口库函数中,有好多的函数里面都要对串口所抽象出来的变量进行操作的时候,都会在之前和之后加这样互斥的操作,为什么要这样做?
60user16
4楼-- · 2019-07-15 06:50
yijun362 发表于 2019-1-18 06:55
这设计到多任务中函数重入和资源争夺的问题
__HAL_LOCK();其实就是OS中的互斥变量mutex,用来保证资源的使用唯一性

非常感谢你的回答!
60user16
5楼-- · 2019-07-15 08:20
骑猪去天山 发表于 2019-1-18 07:15
楼上正解

是的,感谢来过~
60user16
6楼-- · 2019-07-15 09:03
 精彩回答 2  元偷偷看……

一周热门 更多>