STM32F10xxx_Keil中添加的预定义宏
STM32F10xxx_Keil中添加的预定义宏
更新记录
version | status | description | date | author |
---|---|---|---|---|
V1.0 | C | Create Document | 2018.10.15 | John Wan |
status:
C―― Create,
A—— Add,
M—— Modify,
D—— Delete。
Use Standard Peripheral Driver
在Keil MDK环境中使用STM32固件库建立工程时,可能会遇到编译不通过的问题。出现如下警告或错误提示:
warning:#223-D:function"assert_param"declaredimplicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
这时候我们需要在设置面板的“TargetOptions”
中“C/C++”
选项卡添加USE_STDPERIPH_DRIVER. STM32F10X_HD
。这样才能使编顺利通过。
知其然了,我们还得知其所以然。下面就一一道来。我们知道,程序的执行是从main.c
文件开始的,其中必须包含有头文件stm32f10x.h
。打开stm32f10x.h
,查找USE_STDPERIPH_DRIVER
,在第8296-8298行找到
#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif
这段代码的意思是,只有定义了USE_STDPERIPH_DRIVER
,才包含stm32f10x_conf.h
,从而被main.c
用到。那么stm32f10x_conf.h
的作用是什么呢?它相当于一个总的开关文件,如果要用到STM32固件库驱动标准外设,则外设驱动头文件是必不可少的,如stm32f10x_gpio.h
等。而这些文件的添加都是在stm32f10x_conf.h
中进行。
而在Keil MDK的面板添加USE_STDPERIPH_DRIVER
,其实就是Keil方式的全局定义,从而使stm32f10x.h
文件包含stm32f10x_conf.h
文件。
同样的Keil MDK面板中的STM32F10X_HD
是定义芯片的类型,HD
表示芯片是大容量产品。
STM32F10xxx_Keil中添加的预定义宏的更多相关文章
- C预定义宏
作用:对于__FILE__,__LINE__,__func__这样的宏,在调试程序时是很有用的,因为你可以很容易的知道程序运行到了哪个文件的那一行,是哪个函数. 下面一个例子是打印上面这些预定义的宏的 ...
- 预定义宏,C语言预定义的宏详解
1.预定义宏 对于预定义宏,相信大家并不陌生.为了方便处理一些有用的信息,预处理器定义了一些预处理标识符,也就是预定义宏.预定义宏的名称都是以"__"(两条下划线)开头和结尾的,如 ...
- OS X以及iOS中与硬件环境相关的预定义宏
由于现在ARM处理器的飞速发展,从Apple A4到现在的Apple A7,从32位到64位,每一代处理器几乎都增加了不少特性,从而在架构上也有所不同.比如Apple A6引入了ARMv7S架构,增加 ...
- 关于标准C语言的预定义宏
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来.__LINE__ 当前 ...
- VC 预定义宏
列出预定义的 ANSI C和C++ Microsoft实现宏. 编译器识别预定义的ANSI C宏,并且Microsoft C++实现提供几个更多.这些宏不带参数,并且不能重定义.下面列出的某些预定义的 ...
- C/C++预定义宏
编译器识别预定义的 ANSI/ISO C99 C 预处理宏,Microsoft C++ 实现将提供更多宏.这些预处理器宏不带参数,并且不能重新定义. ANSI 兼容的预定义宏 __FILE__,__L ...
- xcode中的预定义宏
[xcode中的预定义宏] 1.SRCROOT,是定义本target的proj的路径. 2.OBJROOT,对象文件根路径,对象文件(即obj文件)就是中间的临时文件.中间文件输出目录的名字以“pro ...
- VS2017 添加预定义宏
project_name[right click] -> Properties -> C/C++ -> Preprocessor -> Preprocessor Definit ...
- 关于window PC机的预定义宏win32
MSDN 里说,VC 有 3 个预处理常量,分别是 _WIN32,_WIN64,WIN32.这三个常量如何使用呢?看起来简单,其实是很困惑的. 在 Win32 配置下,WIN32 在“项目属性-C/C ...
随机推荐
- mysql的启动问题
用cmd启动MySQL (net start mysql )时出现(发生系统错误 5. 拒绝访问)这样的错误是因为cmd 权限太低了需要提高cmd权限才行(即使管理员权限) 如下图cmd所示: ...
- SpringCloud(1)----基于RestTemplate微服务项目
在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上再添加SpringCloud框架. 下面 ...
- 对于ssh服务的简单配置,似的自己的服务器更加安全
对于一台服务器,最大的问题莫过于安全.没有安全性的服务器即使再牛*,性能再好,作用再大,也是分分钟被人搞定,而且还是揉虐性的...当然万事没有绝对的安全,我们只是将危险降低而已.本文只针对于ssh服务 ...
- 前端知识扫盲-VUE知识篇一(VUE核心知识)
最近对整个前端的知识做了一次复盘,总结了一些知识点,分享给大家有助于加深印象. 想要更加理解透彻的同学,还需要大家自己去查阅资料或者翻看源码.后面会陆续的更新一些相关注知识点的文章. 文章只提出问题, ...
- Android 中更新 UI 的四种方式
runOnUiThread handler 的 post handler 的 sendMessage View 自身的 post
- JVM 内存溢出(转载~)
对于JVM的内存写过的文章已经有点多了,而且有点烂了,不过说那么多大多数在解决OOM的情况,于此,本文就只阐述这个内容,携带一些分析和理解和部分扩展内容,也就是JVM宕机中的一些问题,OK,下面说下O ...
- spring cloud consul上下线体验
spring cloud consul中默认会将spring.application.name作为ID 同一服务起多个实例时,ID默认会变成${spring.application.name}-${s ...
- nginx.conf 配置 (反向代理,负载均衡,fastdfs model)
#user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_5-06 高级篇幅之深入源码
笔记 6.高级篇幅之深入源码剖析Hystrix降级策略和调整 简介:源码分析Hystrix降级策略和调整 1.查看默认讲解策略 HystrixCommandProperties ...
- Fluent操作流程&&udf编译
Fluent 操作流程 1, 读网格模型 2, Scale修改单位 3, Check检查网格是否符合要求,最小体积不能出现负数 4, Time 选择瞬态,重力设置 5, Models-Multipha ...