【原创】mdk5宏定义的使用小结
前几天在网上申请了一块芯片为stm32f103cbt6的小板子。
在用keil编程的过程中发现一些小问题,总结如下:
使用mdk5开发,与之前的库函数的引用方式已经改变。不需要在选项的c/c++标签页中包含外设 USE_STDPERIPH_DRIVER 了。如果在 define框里填写了该词,会提示找不到 stm32f10x_conf.h(这个头文件在手动包含库文件的方式下使用)。
选项窗口 里的 target标签页里的晶振参数对于具体产品没有影响——应该是用于软件模式的时候起作用。
我得到的小板子,晶振是12M,与 stm32f10x.h (大概在120行)定义的频率不同。在很长时间里,我想到的办法就是修改这个频率的定义,但是在其他板子(8M晶振)编程的时候,又麻烦了。
其实也想到宏定义在头文件里的120行插入自定义的宏:
#ifdef HSE_VALUE_12M
#define HSE_VALUE ((uint32_t)12000000)
#endif
但是如何启用这个宏呢,或者先入为主的让12M参数起作用,折腾了我很久。首先想到,在main.c里先定义宏,但是不管怎么设置,都无效。
今天在解决了stm32f10x_conf.h提示后,想到的在stm32f10x.h增加自定义,然后将HSE_VALUE_12M关键词添加到define的框里。测试结果,顺利解决问题。
【原创】mdk5宏定义的使用小结的更多相关文章
- 编译预处理 -- 带参数的宏定义--【sky原创】
原文:编译预处理 -- 带参数的宏定义--[sky原创] 如有转载请注明出处 编译预处理 -- 带参数的宏定义 前面为输出文件,后面为输入文件 gcc -E -o test.i test.c ...
- IOS开发,知识点小结,ios开发中经常使用的宏定义总结
IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http:// ...
- [转载]C宏定义的小结
FROM:http://blog.csdn.net/sunboy_2050/article/details/6103530 实现代码实例 程序代码: #include <stdio.h> ...
- Makefile,如何传递宏定义DEBUG【转】
转自:http://blog.csdn.net/linuxheik/article/details/8051598 版权声明:本文为博主原创文章,未经博主允许不得转载. Makefile,如何传递宏定 ...
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used i ...
- Linux内核导出符号宏定义EXPORT_SYMBOL源代码分析
资源: <include/linux/moudule.h> --. #ifndef MODULE_SYMBOL_PREFIX #define MODULE_SYMBOL_PREFIX &q ...
- C在宏定义中使用的语言可变参数
于C标准库的语言,printf.scanf.sscanf.sprintf.sscanf入输出函数,參数都是可变的.在调试程序时.我们可能希望定义一个參数可变的输出函数来记录日志,那么用可变參数的宏是一 ...
- 将C语言宏定义数值转换成字符串!
将C语言宏定义转换成字符串! 摘自:https://blog.csdn.net/happen23/article/details/50602667 2016年01月28日 19:15:47 六个九十度 ...
- C语言-宏定义与使用分析
1.C语言中的宏定义 #define是预处理器处理的单元实体之— #define定义的宏可以出现在程序的任意位置 #define定义之后的代码都可以使用这个宏 2.定义宏常量 #define定义的宏常 ...
随机推荐
- error C3872: “0x3000”: 此字符不允许在标识符中使用
主要是拷贝的程序问题,有错误的空字符. 0x3000是汉语的空格,也就是全角空格,相当于一个汉字,但你又看不见它. 你知道的,像逗号,有半角(,)和全角(,)之分的,其实空格也有. 0x3000是全角 ...
- C# winform Datagridview 标题居中
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
- hibernate------->第一个程序
今天学习hibernate . 创建User类: package com.hibernate; import java.util.Date; public class User { private I ...
- C#第十一天(winform)
1.MD5 namespace MD5加密与解密 { class Program { static void Main(string[] args) { "); Console.WriteL ...
- HTML中判断手机是否安装某APP,跳转或下载该应用
有些时候在做前端输出的时候,需要和app的做些对接工作.就是在手机浏览器中下载某app时,能判断该用户是否安装了该应用.如果安装了该应用,就直接打开该应用:如果没有安装该应用,就下载该应用.那么下面就 ...
- 物流进程html+css页面
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> & ...
- iOS7之后的文本高度封装
#import "NSString+Util.h" @implementation NSString (Util) +(CGFloat)changeStationWidth:(NS ...
- 转发一个javascript的编码规范
google出品:http://chajn.org/jsguide/javascriptguide.html
- GO interface显示类型转换方法
一共两种,直接看代码 import ( "fmt") func main() { //var i interface{} = "TT" var i interf ...
- ubuntu 上配置python +selenium环境
1.ubuntu 自带了python, 可以打开终端输入python 回车后如果显示版本信息就说明已经安装 2.安装安装python setup tools apt-get install pytho ...