首先到官网下载freertos源码,然后找一个stm32f10c8t6的空模板,这个空模板实现点灯之类的都行。
然后在这个空模板的工程下新建一个FreeRtos文件夹
接着在FreeRtos文件夹下新建三个文件夹,分别是src存放源码
inc 存放头文件,port 存放移植平台相关文件
接着把FressRTOS的这个目录的文件全部复制到创建的port文件夹下(注意一个是你下载的FreeRTOS源码目录,一个是刚创建的stm32空模板,别搞乱了)
然后把FreeRTOS这个目录下文件也复制到刚创建的port文件夹下
然后回到FreeRTOS的根目录,复制这些到src文件夹下
接着复制FreeRTOS的这些到inc文件夹下
最后把FreeRTOS下的这个复制到模板工程下
然后打开这个模板工程。点击魔术棒到C++那添加文件路径
然后给每个文件夹添加文件
仔细看对着添加进去就好了,然后编译一下项目。
接着在这个配置文件中添加宏变量
然后注释三个函数SVC_Handler PendSV_Handler SysTick_Handler
然后开始编写代码,我们这里是让C13引脚输入高低电平实现LED灯闪烁的一个任务,代码如下:
#include"stm32f10x.h"// Device header #include"Delay.h"#include"freertos.h"#include"task.h"TaskHandle_t myTaskHandler; void MyTask(void* arg){ while(1){ GPIO_ResetBits(GPIOC, GPIO_Pin_13); vTaskDelay(300); GPIO_SetBits(GPIOC, GPIO_Pin_13); vTaskDelay(300); } } void InitLED(){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); } int main(void) { InitLED(); xTaskCreate(MyTask,"Task1", 512, NULL, 2, &myTaskHandler); vTaskStartScheduler(); }然后下载进板子就可以看到小灯闪烁了,还有一种可以看到现象用逻辑分析仪:
首先打开魔术棒,然后设置如下
然后点击Debug开始按钮,点击Setup,设置为PORTC.13,Bit接收
然后点击全速运行,左上角
出现
这下可以看到成功了,恭喜你做到了入门