一. 环境搭建
1.1 软硬件选择
硬件选择:选择正点原子的阿波罗STM32H743开发板。(WCH-Link)
软件选择:STM32CubeMX + Keil + VSCode
1.2 STM32CubeMX配置
这里有个别人写好的可以参考
https://blog.csdn.net/qq_45396672/article/details/120877303
新建一个 CubeMX 工程,选择STM32H743IIT6
RCC设置
时钟系统(时钟树)配置
LED引脚配置,在①处可以进行搜索引脚,设置模式,②③出进行具体的配置
导入FreeRTOS
如果使用STM32CubeIDE的话记得把USE_NEWLIB_REENTRANT设置成Enabled,我是用的Keil就不需要打开了。
把这个修改一下,我修改的是TIM7,貌似其他的也行,具体原因忘记了
接下来就可以生成代码了,Ctrl+S保存一下
更改一下生成Keil代码
然后点击GENERATE CODE生成代码
1.3keil配置
二、代码编写
这里就创建两个任务,Led0 500ms闪烁一次,Led1 1000ms闪烁一次。
在cubemx里面创建
配置完成之后生成代码,然后在Keil里面编写代码
void StartTaskLed0(void *argument)
{
/* USER CODE BEGIN 5 */
/* Infinite loop */
for (;;)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_1);
osDelay(500);
}
/* USER CODE END 5 */
}
void StartTaskLed1(void *argument)
{
/* USER CODE BEGIN StartTaskLed1 */
/* Infinite loop */
for (;;)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
osDelay(1000);
}
/* USER CODE END StartTaskLed1 */
}
编译运行,LED0每500ms状态变化,LED1每1000ms状态变化。实验成功。