既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
4、打开MDK工程,新建FREERTOS分组并将源文件添加进分组如下图所示。在这里需要注意的是portable目录里的文件是跟平台相关的,我们添加进portable\RVDS\ARM_CM3\port.c,在portable目录里还有一个MemMang文件夹,里面主要是跟内存管理相关的,在这里我们选用heap_4.c。
5、添加头文件如下图所示
6、经过上面的步骤后可以开始编译了,编译结果如下图所示,从编译结果看是缺少了 "FreeRTOSConfig.h"头文件,从文件名称里可以看出这个头文件里的内容主要是一些配置信息,但从刚刚复制的Source的源码里并没有找到该头文件,在这里我们可以从FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_STM32F103_Keil里把FreeRTOSConfig.h拷贝到我们工程的FREERTOS\include里,然后重新编译,发现编译通过了。
7、开始写我们的main.c,这里可以参考以下LED灯代码,之后进行编译然后烧录进stm32单片机里,发现LED灯并没有闪烁。
#include "stm32f10x.h"
#include <stdio.h>
#include "FreeRTOS.h"
#include "task.h"
/********************************************************
函数名:void LED_Init(void)
功能描述:灯端口初始化
被调用函数清单:
调用本函数清单:
被访问的表:
被修改的表:
输入参数:
输出参数:
返回值:
其它说明:
********************************************************/
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED-->PE.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOE, &GPIO_InitStructure); //推挽输出 ,IO口速度为50MHz
GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED-->PE.5 端口配置, 推挽输出
}
/********************************************************
函数名:void vTaskLED(void * pvParameters)
功能描述:灯闪烁
被调用函数清单:
调用本函数清单:
被访问的表:
被修改的表:
输入参数:void * pvParameters =NULL
输出参数:
返回值:
其它说明:
********************************************************/
void vTaskLED(void * pvParameters)
{
portTickType xLastWakeTime;
xLastWakeTime = xTaskGetTickCount();
while(1)
{
GPIOE->ODR ^= GPIO_Pin_5;
vTaskDelayUntil( &xLastWakeTime, ( 250 / portTICK_RATE_MS ) );
}
}
/********************************************************
函数名:int main( void )
功能描述:主函数
被调用函数清单:
调用本函数清单:
被访问的表:
被修改的表:
输入参数:
输出参数:
返回值:
其它说明:
********************************************************/
int main( void )
{
/*串口初始化*/
![img](https://img-blog.csdnimg.cn/img_convert/9fdf3de15e013d918a55129dcb96c3c3.png)
![img](https://img-blog.csdnimg.cn/img_convert/3a29b79a40695a631097cfaf9cdbfcde.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**