FreeRTOS操作系统
文章目录
- FreeRTOS操作系统
- 前言
- 一、F1效果图
- 二、移植F4
- 1、时钟使能
- 2、GPIO端口初始化
- 三、移植踩坑
- 总结
前言
比赛要求用F4的芯片,可是我的项目是用F1做的,只能移植了,就浅显的分享一下我用了3个小时的移植经历。
一、F1效果图
这是我寒假做的一个基于FreeRTOS的物联网智能车库。
二、移植F4
如果你会F4的话,你可以将代码复制过去进行移植,因为要改的不多,差别也不是很大,就比如
1、时钟使能
在F103中GPIOA的外设时钟使能语句为:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );
在F407中,在stm32f4xx.h查找GPIOA,可以查到宏定义:
#define RCC_AHB1Periph_GPIOA ((uint32_t)0x00000001)
因而该使能语句可以改为:
RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_GPIOA, ENABLE );
2、GPIO端口初始化
在F103中,GPIO_InitTypeDef结构体为:
typedef struct
{
uint16_t GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
在F407中,该结构体为:
typedef struct
{
uint32_t GPIO_Pin;
GPIOMode_TypeDef GPIO_Mode;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOOType_TypeDef GPIO_OType;
GPIOPuPd_TypeDef GPIO_PuPd;
}GPIO_InitTypeDef;
F103中的GPIO_Mode在F407中被拆解成了三个参数:GPIO_Mode、GPIO_OType和GPIO_PuPd。其中GPIO_Mode有输入、输出、复用和模拟四种模式可选,GPIO_OType选择推挽和开漏,GPIO_PuPd选择上拉、下拉和浮空。
三、移植踩坑
如果没有用过F4非常不建议用第一个方法,我刚开始移植就用的第一个方法,我没有用过F4,只是在csdn了解了一下我该怎么移植,我把F1的代码复制过去,然后报了很多错,因为F1与F4不一样的就是时钟和IO口以及DMA等一些小东西,我就开始改,改了很久,还是报错,虽然改的东西不多,但是改的地方实在是太多了,还一直报错,你没有基础真的不建议,而且还有Freertos操作系统,真的移植的时候会出现很多问题。然后我找了一个F4的项目,我想着把FreeRTOS移植到里面,又忙活了半天,FreeRTOS移植的时候出现了两个莫名奇妙的错误,我找了好久没有找到,后面我移植的时候发现那个错误了,我找到了解决办法,但是那套代码我已经不用了,移植的时候不要用其他例程的代码,用人家给的移植demo就行了。后面我将那个工程的代码移植到FreeRTOS的F4例程上,这个很简单,直接移植就可以了。可以看一下移植之后的效果。
界面已经完成了,功能还需要完善,只需要把代码复制过去就可以了,但是我已经不打算继续用这个了,FreeRTOS操作系统是我暑假学的,我打算1.5倍速用F4重新学一下操作系统。
总结
虽然不打算用这套代码,但是移植成功了还是很开心的。
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。