新建工程—库函数版

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

然后对应添加库文件。

把所有文件添加进入之后,编译工程,会报很多错误。

那是因为我们的某个头文件里面有条件编译,但是我们现在没有开启,用ST的建议就是,为了不改动工程文件,我们可以在编译器上定义需要的宏。在在此之间忘了说明一个重要问题,我们必须指定头文件的编译路径,不然keil不能正常编译我们的头文件。

然后在魔术棒中定义宏:

注意两个宏之间用英文逗号隔开。再编译,还是提示很多错误。

这是因为F429是升级版的,需要编译的时候把FSMC的部分屏蔽不编译,如果屏蔽呢?keil上直接可以选择编译:

点击要屏蔽的文件,右键,把那个勾去掉,

去掉之后文件有一个红叉,

再编译,就没有错误了,自此,工程建立完毕。但还有几个细节需要注意。

配置魔术棒选项卡
这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,
都是这个步骤的配置出了错。
 Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用
printf 函数。而且有些应用中如果用了 STM32 的浮点运算单元 FPU,一定要同时开微
库,不然有时会出现各种奇怪的现象。 FPU 的开关选项在微库配置选项下方的“ Use
Single Precision”中,默认是开的。 还有把C99mode勾上,因为这太好用了。

在编译要生成的output文件中,可以在魔术棒设置把编译生成的其他文件放在我们用户建立的outptu上。listing也是同样的道理。

到这里,就可以开始进行库函数开发了。

时间: 2024-07-29 16:37:48

新建工程—库函数版的相关文章

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

第10章 ????新建工程-库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ? 了解STM32的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程,作为工程模板.以后直接复制一份工程模板,在它之进行开发. 本章的"工程模板"范例可在配套资料中找到,自己新建工程模版时可参考该工程. 10.1 新建工程 版

第10章 新建工程—库函数版

第10章     新建工程-库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 了解STM32的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程,作为工程模板.以后直接复制一份工程模板,在它之进行开发. 本章的"工程模板"范例可在配套资料中找到,自己新建工程模版时可参考该工程. 10.1 新建工程 版本说

新建工程---寄存器版

目前学习STM32最流行的方法是使用固件库!!(暂时使用寄存器版本) systemInit函数的作用是把外部晶振经过锁相环使系统时钟变成180MHZ.(在固件库版本里面实现了的). 可以在main.c文件里面实现systemInit函数,不过没有函数体:主要是使编译时不报错:如果我们没有实现这个函数,即把系统时钟设置为180MHZ,那么系统时钟怎么来呢?STM32F429系列如果外部晶振(25MHZ)没有起振或者没有配置的话,它就会使用内部的HSI作为系统时钟为16MHZ.在系统项目上不这么使用

TTP229BFS电容式触摸键盘测试程序及驱动—STM32F407(库函数版串口测试)

一.配置 (1) STM32设置 USART1 1 #define SCL PAout(1) //2-线串行时钟输入端口 2 #define SDO PAin(4) //2-线串行通讯方式下为数据输出端口 (2) TTP229设置 TP0=0,TP2 = 0,TP7 = 0,其余默认为1 2线串行输入——CMOS低电平有效输出 有效按键最大输入时间设定为80s 二.程序代码 1 #include "stm32f4xx.h" 2 #include "usart.h"

linux/unix man用法

最近开始学习linux c编程,需要用到很多库函数和c标准库函数,发现原来man命令还可以用来查询函数原型. 比如输入man lseek可以获取函数lseek的原型和所属头文件. 有些函数名既是linux命令又是系统调用,如mkdir,可以输入man 2 mkdir获取该函数原型.只输入man mkdir获取的是命令mkdir的帮助. 对于库函数可以输入man 3 <库函数名>  获得帮助信息.man 3 opendir 对于系统开发经常需要查询函数还是非常方便的,另外在vim中可以用shif

中断之外部中断

. ARM Cortex M3共有256个中断. STM32F103CB共有43个外部中断和16个内部中断. 具有相同数值编号的IO口被分配为同一组,共用一条中断请求线,如下图: 所以共有15条中断线,另外 ●EXTI线16连接到PVD输出●EXTI线17连接到RTC闹钟事件●EXTI线18连接到USB唤醒事件 寄存器:1.外部中断配置寄存器    AFIO_EXTxCR1------->用于选择输入中断源  Pin 0..3 AFIO_EXTxCR2------->用于选择输入中断源  Pi

关于linux中的man

Linux中 man命令是初学者必须要掌握的一个Linux重要命令,这个命令可以帮助在学习中遇到的各种不会使用的命令问题,每个命令的不同的使用方法都可以在这里查找的到,获得相关的帮助信息. (1)man就是manual的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分,如下所示: 1 Executable programs or shell commands  普通用户, 可由任何人启动的. 2 System calls (functions provided by the ke

STM32-外部中断,没有硬件干扰就是快乐

一:触发方式 STM32 的外部中断是通过边沿来触发的,不支持电平触发: 二:外部中断分组 STM32 的每一个GPIO都能配置成一个外部中断触发源,STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断. STM32 分组和对应中断处理函数分配: 管脚 中断标志 中断处理函数分配 PA

外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样(转)

源:外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样 前几天看到开源电子论坛(openedv.com)有人在问这个问题,我特意去做了这个实验,这样用外部SRAM就跟用内部SRAM一样,不用自己去申请内存,也不用考虑什么内存地址,一切让编译器自己去解决. 废话不多说,我直接拿原子哥的战舰开发板库函数版的外部SRAM实验来修改.在库函数的system_stm32f10x.c这个初始化文件当中其实就已经有外部SRAM的初始化,我们只要增加“#define DATA_IN_ExtSRA