利用HAL库生成FreeRTOS代码
1、首先,新建一个STM32CubeMX工程,在工程的“Pinout”页展开"FreeRTOS”项,勾选“Enabled”使能FreeRTOS功能。

3、回到工程界面,切换到“Pinout”页,展开左侧的“SYS”,在Timebase Source右侧的列表中选择SysTick以外的单元,比如"TIM2",如果该TIM为灰色那么肯定是被其他功能占用了。

4、设置完SYS后,重新生成代码,这里选择的是Keil工程。

5、使用Keil打开刚刚生成的功臣改代码,切换到main.c,在main函数中会看到下面的代码: /涯箨唁峦* Create the thread(s) */ /* definition and creation of defaultTask */ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128); defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);这里实际上市创建了一个名为“defaultTask”的任务,它的任务函数名为StartDefaultTask,优先等级为Normal,堆栈长度128 。同时使用osThreadCreate创建该任务,赋值给defaultTaskHandle句柄。

7、我们可以在任务函数StartDefaultTask中添加自己的代码,比如调用printf打印一串字符。注意调用printf需要先实现fputc函数。
