接下来的时间就要不断的更新博客了 Im Back !
今天要想大家分享自己写自己的库的方法(写的不对或者有错误请指正)
1. 我先把我所说的"模板"的含义说一下:并不是你一开始建立一个项目所建立的项目模板那么简单,这个模板应该是最小的系统版为基础的一个可以被你进行短期修改就可以使用在不同项目上的一个库(当然这个过程是要建立在这个一开始的最小系统板的的项目模板的)
你的模板可以是你买的最小系统板的厂家的(但是一定注意 这些基础文件一定要有序和方便易懂,你要知道每个文件夹是什么意思,存放什么东西)
就拿我的这个文件来说:
Hardward:一般在最小系统板以外的外设都先加到这个文件夹里(比如:超声波 舵机 电机 显示屏驱动 各种传感器)
Libraries:存放驱动相应芯片的东西,和启动文件(注意:你在不同的项目中要用到不同的芯片,所以你要在ST公司下载相应的启动文件和核心文件,我这个例子是F103的都可以通用)
MDK-ARM:这个编译完产生的东西存放的文件夹,里面的OBJ文件就是要烧录进板子的程序文件(你要打开一个项目的project的文件也在这里)
USER:放主函数其他Hardward的产生.o文件
你可以自己找模板,但是都是大同小异,你对这个模板一定要熟悉,下面是我的模板链接
链接:https://pan.baidu.com/s/1lQJogk05qK4nEsOucVDiWg
提取码:49j1
2. 为以后加入的外设做准备,比如加入一些文件,或者找一些写的好的函数加进去,这个部分你也可以再写一个文件夹来存放
加入Headfile.h的头文件放在USER就可以了(里面放你需要的通用的.h文件,以后就不要经行反复的调用了.***注意:不能把外设的.h文件加进来,一定是通用的***)
还可以加其他的自定义,后面我发的模板链接里都有
math函数文件(一些数学公式的计算,再一些地方需要用到,你可以自己找更加好的)
3. 把基础的一些通行或者外设的初始化写好(比如I2C,USART,SPI,ADC等)
这里你可以把这些初始化写在相应的外设中,比如你和显示屏之间通信,你可以把USART所有的接口都定义在一起,然后外设函数调用.也可以在外设初始化的时候定义,我个人倾向于前面的那种,但是我也暂时没有写出来,因为它确实要对板子十分熟悉,并且要有经验
4.加入自己的项目的代码了
这个创建文件夹的过程我就不再复述了(但是一定得记住再Management里加.c文件,再C++的时候加入文件夹)
勾选那个 C99就可以避免你很多C语言的错误(比如在for循环里进行变量的定义)
你建立一个项目的顺序因该是循序渐进:
一定要一个部分一个部分的写,写完一个部分去进行实验,看看是否可以运行
然后在main函数中进行相应初始化的定义,写下一个的时候把它再注释掉,写完下一个以后解除注释(这个可以一步步的测试你的代码错误:比如引脚的重复使用,有些这面定义了别的地方就不行了(一定会深有体会的))
最后就是软硬件的结合看效果和调试(先要保证可以实现基础的功能,细节调试放在后面.还是第一个博客的哪句画:先确保代码没有问题再找硬件的问题)
5.写说明文档
你写的代码也许时间长你也会忘记,也许你有团队成员,他需要对代码修改或者改进你的代码(这个文档看自己,但一定注意:这是给别人看的)
6.总结
1.想建立一个好的库,你先得进行宏观的规划,把每一部分都分类做一个笔记来,然后顺着笔记来写
USART USART1与电脑连接 USART2与OPENMV连接 USART3与显示屏连接 USART4与超声波传感器连接 通信2.遇到代码问题要懂得总结:这个问题你可能不是第一次遇到,但是你就是想不起来怎么解决,写一个文档去记录下来(只记住简单的处理方法就行)
3.写完一部分的代码一定记住先保存一下,然后拿一个复制文件再写,留一个源文件(教训惨痛)
4.对芯片文档的查找要熟练(下面是我常用的一些文档,注意区分芯片和类型)
链接:https://pan.baidu.com/s/1ChlyuMb0-iSeA96tjHrtkQ
提取码:3iti
最后是我的一个库(没完全写完)
链接:https://pan.baidu.com/s/1mVLF0rE-mKsHBWlr8-pf3A
提取码:gnma