本帖最后由 syemour 于 2022-11-1 16:30 编辑
摘要:
1) 打开软件工程
2) 移植freertos
3) 代码链接
正文:
1)Type-c数据线连接板子到电脑
打开工程:
keil 5打开ACM32ModulesDemo_Rev2.0.2GPIOdemoMDK_ProjectProject.uvprojx
选择芯片:
选择下载器:
识别到芯片:
2)移植freertos
在os中添加如下文件,在keil中添加头文件路径
文件来源:
FreeRTOSv202112.00FreeRTOSSourceinclude 所有文件
FreeRTOSv202112.00FreeRTOSSourceportableGCC
ARM_CM33_NTZnon_secure
所有文件FreeRTOSv202112.00FreeRTOSSourceportableMemMangheap_4.c
FreeRTOSv202112.00FreeRTOSSource 所有文件
FreeRTOSv202112.00FreeRTOSDemoCORTEX_M4F_
STM32F407ZG-SK
FreeRTOSConfig.h
在FreeRTOSConfig.h中添加
#define configENABLE_FPU 1
#define configENABLE_MPU 0
#define configENABLE_TRUSTZONE 0
屏蔽void Systick_Handler(void) 在main.c中添加
#include "FreeRTOS.h"
#include "task.h"
TaskHandle_t LED1Task_Handler;
TaskHandle_t LED2Task_Handler;
void led1_task(void *pvParameters)
{
while(1)
{
printf("LED1 task runningrn");
vTaskDelay(1000);
}
}
void led2_task(void *pvParameters)
{
while(1)
{
printf("LED2 task runningrn");
vTaskDelay(1000);
}
}
修改int main(void)如下:
int main(void)
{
System_Init();
Uart_Init(115200); // UART2: PA2 PA3
/* GPIO_OUTPUT、GPIO_INT、GPIO_PC13、LED_BLINK */
//APP_GPIO_Test(GPIO_INT);
xTaskCreate(led1_task, "led1_task", 128, NULL, 2, &LED1Task_Handler);
xTaskCreate(led2_task, "led2_task", 128, NULL, 3, &LED2Task_Handler);
vTaskStartScheduler();
// while(1)
// {
// }
}
编译 下载到demo板,打开串口: