1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
这里是STM32比较的重要头文件
******************** ****************************************************** ******* ST版本库的stm32f10x.文件,包含整个头文件代码。综合以上,可以继承stm32f10x.h,用于定义组件重构线、数据类型、结构体的调用、暗示地址意义、引用位操作以及防 C++ 编译的条件编译。 * @file stm32f10x.h ST 标准头文件 * @author MCD Application Team 微控制器开发小组。 * @version V3.5.0 版本 * @date 11-March-2011 2011年3月11 * @brief CMSIS Cortex-M3 Device Peripher Access Layer Header File.CMSIS:Cortex Microcontroller Software Interface是Cortex-M处理器处理器的与供应商的系列底层。连接线、* 高密度、高密度价值线、中密度、* 中密度价值线、低密度、低密度价值线* 和 XL 密度设备。*这个文件包含了芯片STM32F10X(接口增强型)内部的认知定义,位定义,内存地址变换定义,还有一些低产品线的高密度设备。 * 该文件是应用程序员 * 在 C 源代码中使用的唯一包含文件,通常在 main.c 中。该文件包含: * - 允许选择的配置部分: * - 目标应用程序中使用的设备 * - 在应用程序代码中使用或不使用外围设备驱动程序(即 * 代码将基于对外围设备寄存器的直接访问 * 而不是驱动程序 API),此选项由 * “#define USE_STDPERIPH_DRIVER” 控制 * - 更改一些特定于应用程序的参数,例如 HSE * 晶振频率 * - 所有外围设备的数据结构和地址映射 * - 外围设备 2 决定是否使用外部设备的代码(例如使用基于控制器的代码,而不是我们所了解的API应用程序接口代码)。该设备可以通过设置“#define USE_STDPERIPH_DRIVER”来实现。 3 通过文件可以更改 4 可以知道程序的数据结构以及外部的地址映射。 5外部设计的参数和声明位可以在这个文件里面定义。 ****************************************************** **************************** * @attention * * 目前的固件仅供指导,旨在为客户提供 * 与编码相关的信息他们的产品是为了让他们节省*时间。因此,STMICROELECTRONICS 不对任何*直接、间接或后果性损害负责,这些损害涉及*由此类固件的内容和/或客户在 * 编码信息相关信息中进行的使用引起的任何索赔他们的产品。*注意:此文件代码提供给用户,目的是帮助用户提高效率节省时间。ST 不会提供任何用户自己代码的解释和帮助。也不会解决其在代码中的任何错误。 * 《h2 》《中心》?COPYRIGHT 2011 STMicroelectronics《/center》《/h2》 */ /** @addtogroup CMSIS @{ */不关心,只是说明这个文件的作者,公司产品等等,你贴出来的估计是泡沫而而导致的,这也是程序员的一点儿提示什么事情 /** @addtogroup stm32f10x @{ */ #ifndef __STM32F10x_H//如果没有定义__STM32F10x_H,则定义__STM32F10x_H #define __STM32F10x_H #ifdef __cplusplus// extern “C” { #endif 这里是一种条件条件。extern “C”指令非常有用,C和C++的近亲关系注意:。外部的“C”指令中的C,表示的一种编译和连接规约,而不是一种语言.C表示符合ç语言的编译和连接规约的任何语言,如Fortran的,汇编等 还有要说明,extern “C” 需要指定编译和连接规约,但不影响请求。例如在函数声明中,指定了 extern “C”,仍然要遵守 C++ 的类型检测、参数转换。 规则 一开始我不解 extern “C” {这个语句的英文,原来是说明被定义的都是使用 C 语言写的。话,它里面是定义有__cplusplus这个的,而extern“C”{通过告知警告器,这种代码是用C写的,要按照C语言编译。这是因为C++里面有函数重载,编译的时候把参数也编译了,而ç的话,编译只编译函数名。 / ** @addtogroup Library_configuration_section @{ */ /* 根据 应用中使用的目标 STM32 设备取消注释下面的行 */ #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F) && !defined (STM32F) && !defined (STM32F10X_LD) && !defined !定义(STM32F10X_HD_VL)&&定义(STM32F10X_XL)&&定义(STM32F10X_CL)! / *#定义STM32F10X_LD / / 《STM32F10X_LD:STM32低密度设备/ /#定义STM32F10X_LD_VL / / 《STM32F10X_LD_VL:STM32低密度价值线设备/ / #define STM32F10X_MD // !《 STM32F10X_MD:STM32中等密度的器件/ /#定义STM32F10X_MD_VL / /《!STM32F10X_MD_VL:STM32中密度价值线设备/ /#定义STM32F10X_HD / / 《STM32F10X_HD:STM32高密度设备/ /#定义STM32F10X_HD_VL / / 《STM32F10X_HD_VL:STM32高密度值线设备/ /#定义STM32F10X_XL / /! 《STM32F10X_XL:STM32 XL密度器件/ /#定义STM32F10X_CL / / 《STM32F10X_CL:STM32互联线装置* / #ENDIF STM32启动文件选择: startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - startup_stm32f10x_ld.s: for STM32 Low density devices - startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices - startup_stm32f10x_md.s: for STM32 Medium density devices - startup_stm32f10x_hd.s: for STM32 High density devices - startup_stm32f10x_xl.s: for STM32 XL density devices - startup_stm32f10x_cl.s: for STM32 Connectivity line devices cl:互联型产品,stm32f105/107系列 vl:超值型产品,stm32f100系列 xl:超高密度产品,stm32f101/103系列 ld:低密度产品,FLASH小于64K md:中等密度产品,FLASH=64 or 128 hd:高密度产品,FLASH大于128 /* Tip: To avoid modifying this file each time you need to switch between these devices, you can define the device in your toolchain compiler preprocessor. 提示:为了避免每次编译都要修改这些文件,意思是可以使用编译器的preprocessor选项来定义芯片型号等,免得反复更新这个文件。… Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes. Low-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes. Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers这里定义的是各种产品线的FLASH的大小。 where the Flash memory density ranges between 64 and 128 Kbytes. Medium-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes. High-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes. High-density value line devices are STM32F100xx microcontrollers where the Flash memory density ranges between 256 and 512 Kbytes. XL-density devices are STM32F101xx and STM32F103xx microcontrollers where the Flash memory density ranges between 512 and 1024 Kbytes. Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers. */ #如果!定义(STM32F10X_LD)&&!定义(STM32F10X_LD_VL)&&!定义(STM32F10X_MD)&&!定义(STM32F10X_MD_VL)&&!定义(STM32F10X_HD)&&!定义(STM32F10X_HD_VL)&&!定义(STM32F10X_XL)&&!定义(STM32F10X_CL) #错误“请先选择应用程序中使用的目标 STM32F10x 设备(在 stm32f10x.h 文件中)” #endif 设备如果类型选择不正确,这里会报错。 #if !defined USE_STDPERIPH_DRIVER /** @brief 如果您不使用外围设备驱动程序,请注释下面的行。 在这种情况下,这些驱动程序将不包括与应用程序代码将 被基于直接访问外设寄存器 / /#定义USE_STDPERIPH_DRIVER * / #ENDIF /** @brief 在以下行中调整 应用程序中使用的外部高速振荡器 (HSE) 的值 提示:为避免每次需要使用不同的 HSE 时修改此文件,您 可以在工具链编译器预处理器中定义 HSE 值。 这些提示:为了避免每次编译都要修改,英文是可以使用编译器的预处理器选项来定义芯片型号等,免除文件更新这个文件。。.. / #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t) 25000000) / !《 外部振荡器的赫兹值/ #else #define HSE_VALUE ((uint32_t)8000000) / !《 外部振荡器的赫兹值/ #endif / STM32F10X_CL / #endif / HSE_VALUE */ /** @brief In the following line adjust the External High Speed oscillator (HSE) Startup Timeout value /①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 #define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /!《 Time out for HSE start up / 高速外部时钟启动时间 #define HSI_VALUE ((uint32_t)8000000) /!《 Value of the Internal oscillator in Hz*/ 外部时钟设置的值 /** @brief STM32F10x标准外设库版本号标准外设库版本号的定义 / #定义__STM32F10X_STDPERIPH_VERSION_MAIN(0×03)/ 《![31:24]主版本/ #定义__STM32F10X_STDPERIPH_VERSION_SUB1(0×05)/ 《![23:16] SUB1版本/ #定义__STM32F10X_STDPERIPH_VERSION_SUB2(0×00)/ 《![15:8] SUB2版本/ #定义__STM32F10X_STDPERIPH_VERSION_RC(0×00)/ 《![7:0]释放候选* / #定义__STM32F10X_STDPERIPH_VERSION((__STM32F10X_STDPERIPH_VERSION_MAIN 《《 24) |(__ STM32F10X_STDPERIPH_VERSION_SUB1 《 《 16) |(__STM32F10X_STDPERIPH_VERSION_SUB2 《《 8) |(__STM32F10X_STDPERIPH_VERSION_RC)) /** @} */ /** @addtogroup Configuration_section_for_CMSIS @{ */ /** @brief 配置 Cortex-M3 处理器和核心外设配置 Cortex-M3 处理器和核外设 / #ifdef STM32F10X_XL #define __MPU_PRESENT 1 / !《 STM32 XL 密度设备提供 MPU / #else #define __MPU_PRESENT 0 / ! 《 其他 STM32 设备不提供 MPU / #endif / STM32F10X_XL / #define __NVIC_PRIO_BITS 4 / !《 STM32 使用 4 位作为优先级/ #define __Vendor_SysTickConfig 0 / !《 如果使用不同的 SysTick 配置,则设置为 1 */ /** @brief STM32F10x 中断号定义,根据所选设备 in @ref Library_configuration_section 中断线定义,前部分对于所有STM32F10x都有相同定义,后部分根据不同器件容量采用条件编译定义不同中断线。 */ |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1767 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1069 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 02:25 , Processed in 0.740951 second(s), Total 78, Slave 62 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号