f1和f4中的魔术棒里面的define中的问题

查看数: 1755 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-5-21 17:25

正文摘要:

发现一个问题,这里在f103中,使用的v3.5的固件,这里 哪位大神能给点金的讲一下这里面的学问和道道,菜鸟在此不甚感激

回复

wind~风 发表于 2015-5-22 12:32
一般几个型号的芯片用同一个文档,但是程序有小部分细节上的差别,那个宏就是用来选择芯片型号的

使用特权

评论回复
wowow 发表于 2015-5-22 07:57
1.C语言是区分大小写的。
2.那些宏有什么用,代码里你已经看到了。按你的芯片型号,在stm32f4xx.h找到对应的宏来用就是了。
3.启动文件同一个序列一般是一样的。是必不可少的,对其功能需要有一定的了解。

使用特权

评论回复
luofeng2g 发表于 2015-5-21 18:09
本帖最后由 luofeng2g 于 2015-5-21 18:12 编辑

个人理解:启动文件是在你进main函数之前执行的,对于m3内核的,启动方式都是直接复位来启动!你可以看看.s文件,无非就是一些堆栈大小设置,向量表邪恶映射等!汇编部分的代码都是差不多的,只要这些配置都没有问题,或者说没有大的区别,我觉得应该是可以用的!!
  纯属个人看法

使用特权

评论回复
摩天轮1111 发表于 2015-5-21 17:50

是啊,就是那个东西,我发现把这个的用到那个上面,那个用到这个上面,并不对应的用,居然不报错,这个是为什么啊

使用特权

评论回复
luofeng2g 发表于 2015-5-21 17:43
摩天轮1111 发表于 2015-5-21 17:41
是的,我编辑帖子到后面也感觉到就是这个原因了,但是我后面疑惑的是那个启动文件,那个东西好像对编译没 ...

你说的是.S么?

使用特权

评论回复
摩天轮1111 发表于 2015-5-21 17:41
luofeng2g 发表于 2015-5-21 17:39
如你图上所示,f1的上面那句判断啊,没有定义以下中几个宏定义的任意一个,不就执行#error......   当然会 ...

是的,我编辑帖子到后面也感觉到就是这个原因了,但是我后面疑惑的是那个启动文件,那个东西好像对编译没啥影响,这个事为啥,是软件的bug吗,还是?

使用特权

评论回复
luofeng2g 发表于 2015-5-21 17:39
如你图上所示,f1的上面那句判断啊,没有定义以下中几个宏定义的任意一个,不就执行#error......   当然会报错!而你在设置里Define其实就是定义了其中的一个宏,库会跟据这个宏选择一系列供调用的函数!f4 没用过,不太了解

使用特权

评论回复
摩天轮1111 发表于 2015-5-21 17:35
刚刚试了下,在f4的工程里面,c++那个里面的那个define里面试了STM32F429_439xx,STM32F401xx,STM32F446xx,应该说是出现在stm32f4xx.h里面的都会报错,只有STM32F40_41xxx,不报错,当然要是这句话不写,或者乱写,或者在stm32f4xx.h里面没有的,也不会报错,
同时也试了如果是STM32F427_437xx报错,但是把设备改成了f427系列里面的,就不会报错了,同理其他的那个如STM32F401xx,STM32F429_439xx,对应的改下器件就可以了,但是有一点,那个
启动文件对他们好像没有影响,不论用谁的启动文件,或者乱着混着用,都不会影响编译不会导致编译报错,这个是属于这样用不要紧,还是说只是mdk这个软件里面的bug,不检查这个问题?小弟菜鸟,不是很清楚这里面的原理,望大神赐教

使用特权

评论回复