当前H7的HAL库是不支持多任务调用的,也就是不支持重入,虽然做了忙检测,但仅可用于裸机

[复制链接]
 楼主| 向日葵的武士 发表于 2018-8-16 13:52 | 显示全部楼层 |阅读模式
使用HAL库的API函数,最好不要同一个函数多个任务里面搞。
#if (USE_RTOS == 1)
  #error " USE_RTOS should be 0 in the current HAL release "
#else
  #define __HAL_LOCK(__HANDLE__)                                          
                                do{                                       
                                    if((__HANDLE__)->Lock == HAL_LOCKED)   
                                    {                                      
                                       return HAL_BUSY;                    
                                    }                                      
                                    else                                   
                                    {                                      
                                       (__HANDLE__)->Lock = HAL_LOCKED;   
                                    }                                      
                                  }while (0)

  #define __HAL_UNLOCK(__HANDLE__)                                          
                                  do{                                       
                                      (__HANDLE__)->Lock = HAL_UNLOCKED;   
                                    }while (0)
#endif /* USE_RTOS */
您需要登录后才可以回帖 登录 | 注册

本版积分规则

432

主题

439

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部