首先将串口进行配置,后续经常会应用,具体步骤点击:串口配置。
?创建一个任务,就是开辟一个空间、每个任务中都会有while(1)死循环。
动态创建:xTaskCreate();
BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, //任务函数
const char * const pcName, //任务名字(字符串类形)
const configSTACK_DEPTH_TYPE usStackDepth, //任务栈大小
void * const pvParameters, //传给任务的参数
UBaseType_t uxPriority, //任务优先级
TaskHandle_t * const pxCreatedTask ) //任务句柄
静态创建:xTaskCreateStatic();
TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode, //任务函数
const char * const pcName, //任务名称
const uint32_t ulStackDepth, //任务堆栈大小
void * const pvParameters, //传给任务的函数
UBaseType_t uxPriority, //任务优先级
StackType_t * const puxStackBuffer, //任务堆栈(需定义)
StaticTask_t * const pxTaskBuffer ) //任务控制块(需定义)
删除函数:vTaskDelete();
void vTaskDelete( TaskHandle_t xTaskToDelete );
动态创建任务的堆栈由系统分配,静态由程序员自己维护,因此,通常使用动态方式进行任务创建。
双击默认任务,如下所示:
?修改任务名称:
添加任务:
配置完成后生成代码。
首先在main.h对LED、LED2进行宏定义
#define LED_ON HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET)
#define LED_OFF HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET)
#define LED2_ON HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET)
#define LED2_OFF HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET)
效果如下: