FreeRTOS移植到STM32F103C8T6

百度网盘里给的FreeRTOSConfig.h文件不是很全面,可以下载我绑定的资源里的FreeRTOSConfig.h,那里面更全面。

准备好FreeRTOS源码文件夹和标准库工程模板。

FreeRTOS移植资料https://pan.baidu.com/s/1Ezk-B-y0R8-dobE6wdNMlQ?pwd=1234

步骤:

1.在工程模板中新建一个“FreeRTOS”文件夹

2.在“FreeRTOS”文件夹中新建“src”“inc”“port”3个文件夹;

src:存放源码     inc:存放头文件     port:存放移植平台的相关文件

3.复制FreeRTOSv202212.01\FreeRTOS\Source\portable\MemMang中的所有文件到port文件夹中

4.复制FreeRTOSv202212.01\FreeRTOS\Source\portable\RVDS\ARM_CM3中的所有文件到port文件夹中

5.复制FreeRTOSv202212.01\FreeRTOS\Source中的文件夹以外的所有单独文件至src

6.复制FreeRTOSv202212.01\FreeRTOS\Source\include中所有文件至inc

7."C:\Users\W\Desktop\FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_STM32F103_Keil\FreeRTOSConfig.h"复制到FreeRTOS_工程模板\FreeRTOS文件夹下

所有复制内容已完成。

8.用KEIL打开工程点击魔术棒,把4个文件夹全部添加进来:

9.新建组,把文件添加进来:

SRC:添加所有src文件夹下的文件

INC:添加inc文件夹下除了readme之外的所有文件

PORT:添加heap_4.c和port.c文件

10.在FreeRTOS/INC组中添加FreeRTOSConfig.h文件。并将其移动到最顶端,方便之后使用。

11.注释掉stm32f10x_it.c文件中的3个空的中断函数:

//void SVC_Handler(void)
//{
//}

//void PendSV_Handler(void)
//{
//}


//void SysTick_Handler(void)
//{
//}

13.在FreeRTOSConfig.h文件的#endif之前加上:

#define xPortPendSVHandler 	PendSV_Handler
#define vPortSVCHandler 	SVC_Handler
#define xPortSysTickHandler SysTick_Handler

12. 复制以下代码到main.c,编译运行,可以看到PB5上的LED每500毫秒闪烁一次,可以插一个LED上去试试。

#include "stm32f10x.h"
#include "FreeRTOS.h"
#include "task.h"

TaskHandle_t myTaskHandler;
void myTask( void * arg)
{
       while(1)
       {
              GPIO_ResetBits(GPIOB,GPIO_Pin_5);
              vTaskDelay(500);
              GPIO_SetBits(GPIOB,GPIO_Pin_5);
              vTaskDelay(500);
       }
}
int main(void)
{
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
       GPIO_InitTypeDef GPIO_InitStructure;
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
       GPIO_Init(GPIOB, &GPIO_InitStructure);
       xTaskCreate(myTask,"myTask",512,NULL,2,&myTaskHandler);
       vTaskStartScheduler();
       while(1)
       {}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值