STM问题

2019-07-14 23:07发布


问下大家,上面的define该填什么,求助
}$
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
mazhao141
2019-07-15 05:34
用户定义,用于条件编译的。这得看你的需要什么。条件编译的解释看沙发。楼上那个看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
有没有觉得我解释的好详细~~~

一周热门 更多>