从新建工程开始使用C++开发单片机(以STM32为例):二、工程模板

一、项目文件夹说明

项目文件夹
1.1:Libraries:函数库
1.1.1 base_hardware:单片机外设驱动接口,使用C语言对单片机官方提供的库函数进行封装,当项目要移植到其他单片机时,需要重写里面的函数接口。到了后期我打算将需要将里面的文件写成一个模板,移植时完成模板里的函数即可。
1.1.2 examples:示例
1.1.3 other_support:其他地方移植过来的不知道怎么分类的库hhh,例如Arduino的WString等
1.1.4 peripheral:C++接口层:
ioBase 输入输出流,里面封装了两个类outputStream和inputStream,主要为数据的输入输出提供了一个统一的接口,outputStream和inpuStream是一个基类,子类继承时需要重写里面的纯虚函数。主要用于串口的输入输出、屏幕输出字符等。这两个类主要参考和移植了Arduino的print类和stream类,并做了增添和修改,到后面应用的时候会介绍。
Graphics:屏幕需要用到的图像库和字库。移植了Adafrui的Adafruit_GXF类库和字库,并自己写了一个图形库,吧Adafruit的移植进来之后就没有了。为图像输出设备提供了统一的GUI绘图函数接口。
MCU_Hardware:单片机外设驱动C++接口,提供了操作单片机IO口、外部中断、串口、SPI、I2C等外设的C++接口。
Simple_STL:用于移植C++的STL库,例如容器(vector,queue等),算法(sort等)。虽然可以直接在用户代码中使用C++标准的STL,但是效率貌似不怎么高,代码膨胀很严重,希望以后可以找到一个适合单片机的进行修改的STL库进行移植。
1.1.5 stm_libraries:STM官方库函数(版本v3.5)
1.2:User:用户代码
main函数文件所在文件夹

二、Keil工程结构

关于如何建立Keil工程的过程就不详细说明了,这里介绍一些Keil工程里面的代码管理。
2.1:stm_libraries文件夹
在这里插入图片描述
这里面包含的文件相信有过stm32开发经验的大佬们已经很熟悉了,这里不是新手村就不再一一赘述。小白的话去看看基础教程再来吧~请添加图片描述
2.2:keil文件管理
在这里插入图片描述
关于添加文件和包含头文件文件夹等就不多做赘述了,各位大佬应该都会吧。。
这里介绍一下添加c++文件的方法:添加文件时,文件类型选择All files即可。
在这里插入图片描述
我所使用的STM32处理器型号为STM32F103ZE,选择启动文件是使用的是startup_stm32f10x_hd.s。我在C8T6上面也试过,只需要更换启动文件和修改全局宏就可以使用。各位大佬记得根据型号选择对应的启动文件。
在这里插入图片描述

三、代码编辑神器VSCode

直接在Keil上面写代码很痛苦,各位懂得都懂,不懂的多写写就懂了hhh。我主要是使用VSCode写大部分的代码,在Keil里面编译和下载,遇到较小的语法错误就直接用Keil定位修改就好了。
使用VSCode写Keil代码的话直接用VSCode打开Keil工程文件夹,并把Keil里面的全局宏添加进去就可以了。如果遇到上面uint32_t类型未定义啥的禁用波形曲线就好了(我不知道为啥我在uint8_t、uint16_t都可以就是uint32_t会报错,这些在Core_cm3.h里面都定义好了)。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值