网站服务器防火墙设置,长沙旅游攻略最佳路线,婚纱摄影网站模板源码,什么叫网站的空间感一、RTOS:Real time operating system,中文意思为 实时操作系统#xff0c;它是一类操作系统#xff0c;比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。
二、移植FreeRTOS到STM32F103C8T6上
interface选择CMSIS_V1,RCC选择Crystal Ceramic Resonator 。 …一、RTOS:Real time operating system,中文意思为 实时操作系统它是一类操作系统比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。
二、移植FreeRTOS到STM32F103C8T6上
interface选择CMSIS_V1,RCC选择Crystal Ceramic Resonator 。 FreeRTOS相关创建部分 三、任务的创建与删除相关函数FreeRTOS任务的状态 五、任务小实验 LED1和LED2引脚设置成OoutputKEY1和KEY2引脚设置成Input LED1和LED2功能实现代码
void StartTaskLED1(void const * argument)
{for(;;){HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);//HAL_GPIO_TogglePin实现电平反转,PB8控制LED1osDelay(500);}}void StartTaskLED2(void const * argument)
{for(;;){HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);osDelay(1000);}
}KEY1和KEY2功能实现
void StartTaskKEY1(void const * argument)
{for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)GPIO_PIN_RESET)//KEY1为PA0{osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)GPIO_PIN_RESET){ printf(key1被按下\r\n);// \r为回车符\n为换行符if( taskLED1Handle NULL){printf(任务1不存在准备创建任务1\r\n);osThreadDef(taskLED1, StartTaskLED1, osPriorityNormal, 0, 128);taskLED1Handle osThreadCreate(osThread(taskLED1), NULL);if(taskLED1Handle ! NULL)printf(任务1创建成功\r\n);}else{printf(删除任务1\r\n);osThreadTerminate(taskLED1Handle);taskLED1Handle NULL;}}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)GPIO_PIN_RESET);//设置死循环防止按键按下后一直执行下去}osDelay(1);}
}void StartTaskKEY2(void const * argument)
{static int flag 0;//设置标志位for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)GPIO_PIN_RESET){osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)GPIO_PIN_RESET){ printf(key2被按下\r\n);if( flag 0){osThreadSuspend(taskLED2Handle);printf(任务2已暂停\r\n);flag 1;}else{osThreadResume(taskLED2Handle);printf(任务2已恢复\r\n);flag 0;}}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)GPIO_PIN_RESET);}osDelay(1);}}