第10章 新建工程-库函数版—零死角玩转STM32-F429系列

发布者:水墨人生最新更新时间:2019-09-18 来源: eefocus关键字:新建工程  库函数  STM32-F429系列 手机看文章 扫描二维码
随时随地手机看文章

了解STM32的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程,作为工程模板。以后直接复制一份工程模板,在它之进行开发。


本章的"工程模板"范例可在配套资料中找到,自己新建工程模版时可参考该工程。


10.1 新建工程

版本说明:MDK5.15 (MDK即KEIL软件)


版本号可从MDK软件的"Help-->About uVision"选项中查询到。


10.1.1 新建本地工程文件夹

为了工程目录更加清晰,我们在本地电脑上新建一个"工程模板"文件夹,在它之下再新建6个文件夹,具体如下:


表 101 工程目录文件夹清单

image.png

图 101 工程文件夹目录


在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

表 102 工程目录文件夹内容清单

image.png

10.1.2 新建工程

打开KEIL5,新建一个工程,工程名根据喜好命名,我这里取LED-LIB,保存在ProjectRVMDK(uv5)文件夹下。


图 102 在KEIL5中新建工程


1.    选择CPU型号

这个根据你开发板使用的CPU具体的型号来选择, M4至尊版选STM32F429IGT型号。如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加device库,KEIL5不像KEIL4那样自带了很多MCU的型号,KEIL5需要自己添加,关于如何添加请参考《如何安装KEIL5》这一章。

图 103 选择具体的CPU型号


2.    在线添加库文件

等下我们手动添加库文件,这里我们点击关掉。

图 104 库文件管理


3.    添加组文件夹

在新建的工程中添加5个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。


表 103 工程内组文件夹内容清单

image.png

图 105 如何在工程中添加文件夹    


4.    添加文件

先把上面提到的文件从ST标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

图 106 如何在工程中添加文件


5.    设置文件是否加入编译

STM32F429比较特殊,它有用FMC外设代替了FSMC外设的功能,所以它的库文件与其它型号的芯片不一样,在添加外设文件时,stm32f4xx_fmc.c和stm32f4xx_fsmc.c文件只能存在一个,而且我们的STM32F429芯片必须用fmc文件。如果我们把外设库的所有文件都添加进工程,也可以使用下面的方法,设置文件不加入编译,这样也不会导致编译问题。这种设置在开发时也很常用,暂时不把文件加进编译,方便调试。


图 107 设置文件是否加入编译


6.    配置魔术棒选项卡

这一步的配置工作很重要,很多人串口用不了printf函数,编译有问题,下载有问题,都是这个步骤的配置出了错。


(1)    Target中选中微库" Use MicroLib",为的是在日后编写串口驱动的时候可以使用printf函数。而且有些应用中如果用了STM32的浮点运算单元FPU,一定要同时开微库,不然有时会出现各种奇怪的现象。FPU的开关选项在微库配置选项下方的"Use Single Precision"中,默认是开的。

图 108 添加微库


(2)    在Output选项卡中把输出文件夹定位到我们工程目录下的"output"文件夹,如果想在编译的过程中生成hex文件,那么那Create HEX File选项勾上。

图 109配置 Output 选项卡


(3)    在Listing选项卡中把输出文件夹定位到我们工程目录下的"Listing"文件夹。

图 1010配置 Listing 选项卡


(4)    在C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。

图 1011配置 C/C++ 选项卡


在这个选项中添加宏,就相当于我们在文件中使用"#define"语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。


STM32F429_439xx宏:为了告诉STM32标准库,我们使用的芯片是STM32F429型号,使STM32标准库根据我们选定的芯片型号来配置。


USE_STDPERIPH_DRIVER宏:为了让stm32f4xx.h包含stm32f4xx_conf.h这个头文件。


"Include Paths "这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)


7.    下载器配置

这部分的配置最好是在安装好下载器驱动,下载器连接了电脑和开发板,且开发板上电后来配置。


这里面需要根据你使用了什么仿真器来配置,常用的有三种仿真器:JLINK/ARM-OB,ST-LINK,ULINK2,而且这个配置不是配置完一次之后以后就不会改变,当你换了芯片型号,或者其他操作(具体原因不明)都会改变下载器的配置。


(1)    JLINK/ARM-OB配置


要先安装了JLINK驱动之后,该配置才能下载,两者缺一不可。


图 1012 JLINK/ARM-OB下载配置


②ST-LINK配置


要先安装了ST-LINK驱动之后,该配置才能下载,两者缺一不可。

图 1013ST-LINK下载配置


③ULINK2配置


要先安装了ULINK2驱动之后,该配置才能下载,两者缺一不可。要注意的是设置成ULINK2,而不是ULINK。


图 1014ULINK2下载配置


8.    选择CPU型号

这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到Device的时候,请确保该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的"Reset and Run"配置是否失效。M4至尊版用的STM32的FLASH大小是1M,所以这时选择1M的容量,如果使用的是其他型号的,要根据实际情况选择。

图 1015 选择芯片型号


一个新的工程模版新建完毕。


关键字:新建工程  库函数  STM32-F429系列 引用地址:第10章 新建工程-库函数版—零死角玩转STM32-F429系列

上一篇:第33章 TIM—电容按键检测—零死角玩转STM32-F429系列
下一篇:第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列

推荐阅读最新更新时间:2024-11-04 15:00

STM32库函数void USART_SendData()的缺陷和解决方法
简介:本文主要谈到了STM32库函数void USART_SendData()存在的一些问题,针对这些问题提到了3个解决方案,一起来看看。 2.1问题及现象 使用USART_SendData()函数非连续发送单个字符是没有问题的;当连续发送字符时(两个字符间没有延时),就会发现发送缓冲区有溢出现象。若发送的数据量很小时,此时串口发送的只是最后一个字符,当发送数据量大时,就会导致发送的数据莫名其妙的丢失。 如: for(TxCounter = 0;TxCounter RxCounter; TxCounter++) USART_SendData(USART1, RxBuffer ); 2.2原因 此API
[单片机]
MSP430F5529 DriverLib 库函数学习笔记(四点五)printf打印输出
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 代码实现 重定向fputc(int ch, FILE *f)直接使用printf的方法只有字符串和%s打印正常,数字打印不出来 只好换成这个。 这个程序是我以前写在STM32里的,现在移植过来,效果依然不错。 #include string.h #include stdarg.h #include stdio.h void UART_printf(uint16_t baseAddress, const char *format,...) {
[单片机]
MSP430F5529 DriverLib <font color='red'>库函数</font>学习笔记(四点五)printf打印输出
STM32封装自己的库函数(GPIO初始化)
初始化GPIO 1.确定引脚号 2.确定模式 3.GPIO类型 4.定义上拉或下拉 定义初始化GPIO引脚结构体 typedef unsigned char unit8_t typedef struct { unit32_t GPIO_Pin; GPIOMode_Typedef GPIO_Mode; GPIOOType_Typedef GPIO_OTypde; GPIOSpeed_Typedef GPOI_Speed; GPIO_PuPd_Typedef GPIO_PuPD; }GPIO_InitTypedef; typedef enum { GPIO_Mode_
[单片机]
LM3S9B96 IAR 新建一个工程
以闪烁LED为例,讲解如何新建一个project,并配置工程选项。 重点:1) $PROJ_DIR$ 代表什么 2) 需要哪些库,到开发板提供的光盘中找 #include inc/hw_memmap.h #include inc/hw_types.h #include driverlib/gpio.h #include driverlib/sysctl.h /* 寄存器地址 ---------------------------------------------------------------*/ #define GPIO_PORTF_APB_DIR_R 0x40025400 #define GPI
[单片机]
看得见的新建STM32工程步骤
1. 新建文件夹 DOC文件夹: 可以存放readme.txt等项目文档 Library文件夹: 可以存放ST库源码,直接复制ST库的源代码到Library文件夹,另外startup只需复制和 芯片 对应的.s文件即可,一般存放在 -ST库3.5.0源码STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3Device SupportSTSTM32F10xstartu parm Listing文件夹: 可以存放Keil生成的List文件,需要在Keil中设置,List的存放路径。 Output文件夹: 可以存放生成
[单片机]
看得见的<font color='red'>新建</font>STM32<font color='red'>工程</font>步骤
STM32如何新建工程+寄存器点亮LED灯
STM32新建工程跟51差不多的,但是32会多点东西,比如加载芯片支持包啦,启动文件啦。还有一个很重要的 你得有KEIL5 是吧哈哈 我这里就不写如何安装KEIL5了 网上挺多资源的,这里就主要写一下如何新建工程点亮一个LED灯。 我这里用STM32F103C8T6 我这里用STM32F103C8T6 一: 如何新建工程 1:下载芯片支持包Keil.STM32Fxxxx.pack文件 1.进入KEIL5官网。 找到自己的型号 这样就下载了 芯片支持包了。 2:打开KEIL5 加载Keil.STM32Fxxxx.pack文件 .打开KEIL5 把 下载的 Keil.STM32Fxxxx.pack文件
[单片机]
STM32如何<font color='red'>新建</font><font color='red'>工程</font>+寄存器点亮LED灯
关于stm8用库函数写程序时出现Error
1.出现这个错误先查自己对应的芯片的资料有没有这个串口,因为有的芯片有的串口不一样。 2.在options里面去调整为自己芯片的型号 3.进入stm8s.h文件中调整为自己对应的芯片类型 这3个地方,如果修改过来了,就不会出现这个问题了
[单片机]
关于stm8用<font color='red'>库函数</font>写程序时出现Error
STM32库函数详解----(通用输入/输出GPIO)
初始化和配置相关函数 1.void GPIO_DeInit (GPIO_TypeDef* GPIOx) 函数解释:gpio的反初始化函数,该函数的作用是把GPIO相关的寄存器配置成上电复位后的默认状态,在第一次初始化前或者不在使用某一接口后,可以调用该函数。 参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。 2.void GPIO_Init (GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct) 函数解释:GPIO的初始化函数,该函数的作用是对io进行初始化。 参数:(1)GPIOx,GPIO的分组,如 GPIOA,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved