请问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条回答
7762642422d
1楼-- · 2019-07-15 12:04
60user16 发表于 2019-1-18 07:56
非常感谢你的回答,目前我是加了μC/OS的,所以采用了将USE_RTOS=1,然后将__HAL_CLOK和__HAL_UNCLOCK宏定义为空了。

恩,还好你没有受到“误导”。
多看、多思考,对别人的回复总是抱怀疑态度。
hu_wfllllllllfl
2楼-- · 2019-07-15 13:10
60user16 发表于 2019-1-18 07:56
非常感谢你的回答,目前我是加了μC/OS的,所以采用了将USE_RTOS=1,然后将__HAL_CLOK和__HAL_UNCLOCK宏定义为空了。

为什么我按照你的方法改过之后编译提示出错,错误为error directive :"USE_RTOS should be 0 in the current HAL release",我用的是FREERTOS
60user16
3楼-- · 2019-07-15 17:04
hu_wfllllllllfl 发表于 2019-1-18 08:15
为什么我按照你的方法改过之后编译提示出错,错误为error directive :"USE_RTOS should be 0 in the current HAL release",我用的是FREERTOS

因为这个宏USE_RTOS控制这执行打印这句错误提示。
hu_wfllllllllfl
4楼-- · 2019-07-15 19:48
60user16 发表于 2019-1-18 08:23
因为这个宏USE_RTOS控制这执行打印这句错误提示。

楼主你说你是加了μC/OS,然后将USE_RTOS=1,然后将__HAL_CLOK和__HAL_UNCLOCK宏定义为空了。我用的是freertos,然后我也将USE_RTOS=1了,也屏蔽掉了_HAL_LOCKh和_HAL_UNLOCK,为啥编译不通过
60user16
5楼-- · 2019-07-15 21:46
hu_wfllllllllfl 发表于 2019-1-18 08:31
楼主你说你是加了μC/OS,然后将USE_RTOS=1,然后将__HAL_CLOK和__HAL_UNCLOCK宏定义为空了。我用的是freertos,然后我也将USE_RTOS=1了,也屏蔽掉了_HAL_LOCKh和_HAL_UNLOCK,为啥编译不通过

FreeRTOS的我就不知道了,你要是出现错误提示打印的话,就看看是不是宏控制了那句话。

一周热门 更多>