一、准备工作
首先打开我们的cubeMX软件,搜索我们对应的MCU,我这里使用的是c8t6最小系统板
接下来双击我们需要的芯片型号
二、System Core配置
进入界面后我们先进行时钟的配置
将HSE配置为晶振
然后我们将SYS配置成为serial wire,
并且基准时钟选择为TIM4
做如上配置的目的是:使用serial wire可以节省出大量的引脚,使用TIM4是因为其他的TIM1、2、3用在其他元件上边
时钟配置为72MHz最高频率
ok,那么到这里基础的配置先告一段落。
三、配置FreeRTOS
下滑找到FreeRTOS,默认是disable,需要配置CMSIS_V2
打开TASK可以发现启用FreeRTOS之后会创建一个任务,可以进行修改编辑,先保留默认即可
最后对工程进行命名,以及使用的编译器进行选择
将这个勾选上,每个外设的代码分为.c和.h
其余的保留默认,即可进行生成
四、打开keil5的文件
点击魔术棒,将这个进行勾选
将这个 取消 勾选
五、添加点灯的GPIO配置
回到cubeMX,对板载LED灯PC13进行配置
六、添加驱动文件
打开keil编译器,添加一个新的group,我命名为hardware
里边添加驱动文件(韦东山老师资料包中的)如下
七、编写rtos内容
先打开FreeRTOS.c文件,进行刚刚添加的驱动文件的头文件添加,
在这个部分加入LED测试的函数
编译烧录后非常完美的运行了,板载的LED灯进行闪烁。
八、使用OLED
重新打开cubeMX,
选择IIC1之后发现对应 的引脚是PB6、PB7
选择之后之间生成代码即可。
打开keil之后还得重复之前一个操作,将Reset自动运行打开和pack的取消勾选。每次重新生成都会变回原来的样子,需要重新配置
添加驱动文件,切记不要把字库的.c文件加进来,会报错:01_FreeRTOS_my\01_FreeRTOS_my.axf: Error: L6200E: Symbol ascii_font multiply defined (by ascii_font.o and driver_oled.o).
原因是重复包含了,这个.c文件已经在其他头文件里边包含了
接下来烧录编译,正确接线PB6、7之后就可以显示测试函数的内容了
到此,一个工程已经创建成功