freeRTOS 挂起和还原
添加一个task 为KEY 当按按下时挂起
再次按下时恢复
void START_KEYTask02(void const * argument)
{
char big = 0;
/* USER CODE BEGIN START_KEYTask02 */
/* Infinite loop */
for(;;)
{
if (HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 1 && big == 0)
{
osThreadSuspend (LEDTaskHandle);
big = 1;
osDelay(500);
}
if (HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == 1 && big == 1)
{
osThreadResume (LEDTaskHandle);
big = 0;
osDelay(500);
}
}
/* US
动态消息队列
在C:\Users\***\STM32Cube\Repository\STM32Cube_FW_F4_V1.26.2\Projects\STM324xG_EVAL\Applications\FreeRTOS\FreeRTOS_Queues\Src 中看生产者、消费者案例
key任务中使用 OsMessagePut 产生一条消息
task1中 OsMessageGet 获得消息
event = osMessageGet(osQueue, oswaitForever);
if(event.status == osEventMessage)
{
***
}
|