完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
|
|
4个回答
|
|
|
这个是给条件编译语句定义常量用的,相当于在所有的源文件里面都有
#define XXXX 语句,其中XXXX 是你填在Define框中的字符串; 比如你在Define框输入有 FRAM,在你的任何源程序中,就可以这样: #ifdef FRAM i=0; #else WriteFlash(&i, 0); #endif 而且不再需要使用#define语句声明FRAM. |
|
|
|
|
|
|
|
|
|
|
|
用户定义,用于条件编译的。这得看你的需要什么。条件编译的解释看沙发。楼上那个看stm32f10x.h文件中低21行。常用用的官方要用的USE_STDPERIPH_DRIVER,STM32F10X_HD,VECT_TAB_SRAM就这三个。第一个,用库函数你就得包含这个,头文件里有个
#ifdef USE_STDPERIPH_DRIVER #include "stm32f10x_conf.h" #endif 第二个是不同容量对于寄存器的定义是不一样的,因为低容量的芯片有些功能没有当然相应的寄存器也就没有。 最后一个是用与SRAM调试。这个东西的条件编译会重指中断向量 #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ #endif 当然啦 如果你的程序还是在调试的时候没进中断手动加入下面几行程序在你的主函数里 #ifdef VECT_TAB_SRAM //NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #endif 有没有觉得我解释的好详细~~~ |
|
|
|
|
|
有,谢谢你哈,现在理解了 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:22 , Processed in 0.719576 second(s), Total 46, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖