STM32的FreeRtos的学习

首先就是去官网下载一个源文件:FreeRtos官网

下载下来的是一个zip文件,解压缩了。

然后再工程文件夹中创建个文件夹:

在这个文件夹中创建3个文件夹:

然后开始把下载下来的文件夹中的文件挑选出来放到我们的工程文件夹中:

至此所需要的文件就全部拷贝齐全了,接下来就是在工程中添加各个文件了。

最后三个文件夹的文件在工程中的分布如图:

接下来就是主程序了,其实过程就是:

1:声明一个任务句柄。

2:创建一个任务函数。

3:创建一个任务。

4:开启调度器。

cs 复制代码
#include "stm32f10x.h"                  // Device header
#include "freertos.h"      //包含freeRtos头文件
#include "task.h"           //包含task头文件

TaskHandle_t myTaskHandler;   //声明一个任务句柄

void myTask( void * arg)     //创建一个任务函数
{
	while(1)             //任务函数就是一个死循环
	{
		GPIO_ResetBits(GPIOC, GPIO_Pin_13);   //GPIO13口置0
		vTaskDelay(500);                      //延时500
		GPIO_SetBits(GPIOC, GPIO_Pin_13);     //GPIO13口置1
		vTaskDelay(500);                      //延时500
	}
}


int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStruct);
	
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	
	/*创建一个任务(第一个参数是任务函数名称,
				   第二个参数是一个字符串,随便写
				   第三个参数是任务堆栈大小,我定的是512
	               第四个参数是任务传递参数,这里暂时不用写NULL
				   第五个参数是任务优先级,可以随意设置,我设置的是2
				   第六个参数是任务句柄)*/
	xTaskCreate(myTask, "myTask", 512, NULL, 2, &myTaskHandler); 
	
	vTaskStartScheduler();   //开启调度器
	while(1)
	{
		
	}
}

还需要在FreeRTOSConfig.h中添加几行宏定义:

#define xPortPendSVHandler PendSV_Handler

#define vPortSVCHandler SVC_Handler

#define xPortSysTickHandler SysTick_Handler

还要在stm32f10x_it.c文件中把刚刚宏定义的三个函数注释掉:107行 126行 135行

至此编译主函数下载到单片机中就能看到PC13的小灯在闪烁了。其他的地方我也不懂呢?今天第一天开始学习。

相关推荐
从零开始的嵌入式之旅13 分钟前
day47
arm开发·经验分享·笔记·嵌入式硬件
恒锐丰科技林技术员20 分钟前
EG1164 高压大电流升压同步整流芯片解析
经验分享·嵌入式硬件·硬件工程
CHENKONG_CK44 分钟前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(77):TSM——让记忆回到事件真正发生的时间
论文阅读·人工智能·学习·开源·github
祖力551 小时前
ARM时钟
嵌入式硬件·arm·时钟·imx6ull
陈年老古董1 小时前
MediaPipe 姿态检测与脸部关键点检测
笔记·python·opencv·学习·dlib
旺仔小馒头wang1 小时前
AI 智能手机发布会:赋予人类的五种新能力
人工智能·学习·音视频
人工智能培训1 小时前
未来三年,AI 落地的五个确定性判断
大数据·人工智能·学习·生活·ai写作
三佛科技-187366133971 小时前
128KB~512KB Flash车规级MCU选型指南(FT32A072 / FT32A103 系列)
单片机·嵌入式硬件
LONGZETECH1 小时前
一线职教实测:风光 580 汽车故障诊断仿真系统,破解实车实训四大核心痛点
人工智能·学习·安全·架构·汽车