这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间。每次建立工程都这么编译,是一个相当浪费时间和香烟的过程。
于是,我有了将库编译成lib文件的想法。本博文就是我将STM32F4的标准库编译成lib文件并在工程中使用的过程。
适用对象:
1、熟悉库,不想再看库里边代码
2、有稳定的库,库文件更新不频繁
3、库文件多,每次编译时间长
下面是我将STM32F4的标准库编译成lib并在工程中使用的过程:
使用工具链:MDK4.70A。其实各个工具链几乎是一样的
1、建立创建lib的工程
2、将库文件拷贝到工程目录:
将库里边目录\STM32F4xx_StdPeriph_lib v1.0.2\STM32F4xx_StdPeriph_Driver下的inc和src两个文件夹拷贝到预创建工程的目录。
我计划在目录E:\学习\ARM\库\stm32f4-2中创建库。于是我将两个文件夹拷贝到了这里。
3、选择芯片:STM32F407VG
4、选择NO。因为这不是可运行的程序,这里不需要加入启动文件。
5、创建完工程后,工程结构如图:
6、MDK中点击工具栏上的设置工程结构,并将库文件加入工程:
为了通用,我将库中所有的C文件都加入了工程
7、完成后MDK下的目录结构:
8、MDK下设置输出选项:
工程选项中设置输出,选择输出lib到目录E:\学习\ARM\库\stm32f4-2\lib\:
9、设置C语言预编译宏和引用目录:
因为要使用STM32F4标准库,预编译选项设置:USE_STDPERIPH_DRIVER,STM32F4XX
将刚才拷贝的inc和工程根目录文件夹加入引用:
10、设置完成后:
11、将stm32f4xx_conf.h文件拷贝到工程:
这个文件需要在标准库提供的示例工程中找:
我使用的是\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA\stm32f4xx_conf.h
这个文件引用了库文件中所有的头文件。因为不包含在库中,我将这个文件拷贝到E:\学习\ARM\库\stm32f4-2文件夹。
12、到此,工程设置完成。按F7编译,经过一支烟的时间即可生成库的lib。
生成完成后,MDK工程中:
13、工程输出目录:
文件stm32f4lib.lib就是我们生成的lib文件
14、将库文件加入该工程
15、新建工程,我命名成stm32f4use,处理器依旧选择STM32F407VG。
16、这是选择yes,因为这是一个可执行的工程:
17、将标准库示例工程的\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA中的system_stm32f4xx.c拷贝到工程目录(E:\学习\ARM\库\stm32f4-2)中
18、再次点击菜单上的设置工程目录结构,将刚才生成的lib库加入到工程中:
19、将示例工程\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\ADC3_DMA中的system_stm32f4xx.c拷贝到工程目录。
20、将main.c和 system_stm32f4xx.c 加入到工程
21、完成后的目录结构:
22、加入编译选项
与上边生成lib相似,预编译选项设置:USE_STDPERIPH_DRIVER,STM32F4XX
引用目录:.\inc..\stm32f4-2 (这里的.\inc..文件夹就是刚才建立库时候的文件夹)
输出可执行文件:
23、添加几行简单的代码
//点亮一个LED
#include <stm32f4xx.h>
#include "stm32f4xx_conf.h"
#include "stm32f4xx_tim.h"
int main()
{
GPIO_InitTypeDef GPIO_InitStructure
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz
GPIO_Init(GPIOD,&GPIO_InitStructure)
GPIO_SetBits(GPIOD,GPIO_Pin_12)
while(1)
}
24、工程设置完成,按F7试试。现在编译速度快起来了,点个烟的时间就编译完了
1、在米思齐中创建一个新项目,并选择STM32系列芯片作为目标芯片。2、在项目设置中,设置好开发环境路径,以及选择对应的芯片型号。
3、在代码编辑器中编写您的程序,可以使用C/C++语言编写。
4、编译、构建并下载程序到STM32芯片上。
这是原理图符号,是看不出pcb封装的。。
在原理图编辑软件中打开原理图,用鼠标双击这个符合,就会出现封装选项。
如下图:
双击后出现:
Footprint,就是器件封装名称,可以是用户自己制作的封装,可以是pcb封装库中的封装。。
同样符号,却可能封装完全不相同,需要打开用原理图编辑软件打开原理图,来实际看封装名称才能真正确定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)