freertos入门(stm32f10c8t6版闪烁灯)

首先到官网下载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接收
在这里插入图片描述
然后点击全速运行,左上角
在这里插入图片描述

出现
在这里插入图片描述
这下可以看到成功了,恭喜你做到了入门

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值