| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F10X工程文件(Keil软件) -> 正文阅读 |
|
[嵌入式]STM32F10X工程文件(Keil软件) |
????????core_cm3.c 和 core_cm3.h为ARM公司提供的核心文件,所有Cortex-M3内核的芯片通用。无需理解,无需修改。 ????????system_stm32f10x.c 和 system_stm32f10x.h为设置系统以及总线时钟的文件,系统初始化时会调用其中的SystemInit()函数,用来设置系统时钟,包括系统时钟源、PLL 倍频因子、AHB/APBx 预分频器和闪存设置。SystemInit()函数在启动时于复位后和主程序开始之前调用,调用在“startup_stm32f10x_xx.s”文件中进行。稍微了解,无需修改。 ????????startup_stm32f10x_xx.s文件是启动文件,有8个不同的文件,不同闪存存储器容量的芯片使用的启动文件不同。 ????????其中最主要也是最常用的是startup_stm32f10x_ld.s、startup_stm32f10x_md.s和startup_stm32f10x_hd.s,文件后缀前的字母ld、md和hd分别为Low Density、Medium Density和High Density的缩写,表示文件分别适用于小,中和大容量芯片。官方对容量划分为:小于等于32K字节为小容量,64K到128K字节为中容量,大于等于256K字节为大容量。 ????????如何确定所用芯片的存储容量呢?可以根据芯片命名来确认,以STM32F103RCT6为例,根据芯片命名规则,芯片名的倒数第三位“C”表示存储容量256K字节的闪存存储器,所以STM32F103RCT6使用startup_stm32f10x_hd.s作为启动文件,具体命名规则如下。 ? ? ? ? 再举一个例子,STM32F103C8T6中的8表示64K字节闪存容量,为中等容量,所以使用startup_stm32f10x_md.s作为启动文件。其他启动文件可以将其打开查看文件描述来确认适合哪种芯片使用。 ????????stm32f10x.h 为外部访问层头文件,十分重要,主要有各种寄存器定义,位定义和存储器映射等。在开发过程中可能会时常查看该文件。无需修改 ? ? ? ? stm32f10x_conf.h库配置文件,在此文件中包含需要使用的外设头文件。根据需要修改。 ????????stm32f10x_it.c和stm32f10x_it.h用于编写中断服务程序,该文件为所有异常处理程序和外设中断服务提供模板。其实中断服务程序在工程中的其他任意文件中都可以编写,所以这两个文件意义不是很大(原子哥说的)。 ? ? ? ? 以上文件为建立工程的主要文件,核心文件2个,系统文件2个,启动文件1个,访问层头文件1个,库配置文件1个,中断文件2个。除了这9个文件外,在实际开发过程中用到各种外设时,需要使用相应的库文件。 ? ? ? ? 以下翻译自文件中的简述:(翻译个毛,简述都是废话) misc.c和misc.h:包含各种固件库函数(CMSIS 函数的附加组件)的所有函数原型。 stm32f10x_adc.c和stm32f10x_adc.h:包含 ADC 固件库的所有函数原型。(模数转换) stm32f10x_bkp.c和stm32f10x_bkp.h:包含 BKP 固件库的所有函数原型。(备份数据) stm32f10x_can.c和stm32f10x_can.h:包含 CAN 固件库的所有函数原型。(通信总线) stm32f10x_cec.c和stm32f10x_cec.h:包含 CEC 固件库的所有函数原型。CEC是“消费者电子控制”?不懂...... stm32f10x_crc.c和stm32f10x_crc.h:依旧是废话。。。CRC:循环冗余校验,就是对数据进行校验。 stm32f10x_dac.c和stm32f10x_dac.h:文件里的简述都是一句话,不看了。用于数模转换。 stm32f10x_dbgmcu.c和stm32f10x_dbgmcu.h:应该是调试用的,原子哥也没用过。 stm32f10x_dma:DMA-直接存储器访问,数据吞吐。 stm32f10x_exti:外部中断。 stm32f10x_flash:操作闪存的。 stm32f10x_fsmc:FSMC(Flexible Static Memory Controller,可变静态存储控制器),吞吐数据。 stm32f10x_gpio:操作通用IO口 stm32f10x_i2c:IIC通信 stm32f10x_iwdg:独立看门狗 stm32f10x_pwr:功耗控制 stm32f10x_rcc:系统时钟 stm32f10x_rtc:实时时钟 stm32f10x_sdio:SD卡 stm32f10x_spi:SPI通信 stm32f10x_tim:定时器 stm32f10x_usart:串口 stm32f10x_wwdg:窗口看门狗 ? ? ? ? 自用学习笔记,如有错误欢迎指正 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 9:40:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |