STM32学习记录(一):STM32概述
STM32F10x系统结构图#
STM32F10x的系统结构图如下[1]:
框图中名词解释,按A~Z的顺序排列:
- AHB(Advanced High performance Bus):先进高性能总线
- APB(Advanced Peripheral Bus):先进外设总线
- ADC(Analog-to-Digital Converter):模拟/数字转换器
- BKP(Backup registers):备份寄存器
- CAN(Controller Area Network):控制器局域网
- DAC(Digital-to-Analog Converter):数字/模拟转换器
- DCode (Data Code):数据总线
- DMA(Direct Memory Access):存储器直接访问
- Flash(Flash Memory):闪存
- FSMC(Flexible Static Memory Controller):可变静态存储控制器
- GPIO(General-purpose input/output):通用输入输出
- ICode (Insurtcution Code):指令总线
- I2C(Inter-Integrated Circuit):集成电路总线
- IWDG(Independent watchdog):独立看门狗
- NVIC(Nested Vectored Interrupt Controller):嵌套向量中断控制器
- RCC(Reset Clock Controller):复位时钟控制器
- RTC(Real-time clock):实时时钟
- System:系统总线
- SRAM(Static Random-Access Memory):静态随机存取存储器
- SDIO(Secure Digital Input and Output):安全数字输入和输出接口
- SPI(Serial Peripheral Interface):串行外围设备接口
- TIM(Timer):定时器
- USART(Universal Synchronous Asynchronous Receiver/Transmitter):通用同步异步收发器
- USB(Universal Serial Bus):通用串行总线
- WWDG(Window watchdog):窗口看门狗
Cortex-M3处理器内部有3个外设:[2]
- Nested vectored interrupt controller(NVIC),嵌套向量中断控制器(NVIC)是一种支持低延迟中断处理的嵌入式中断控制器。
- System control block(SCB),系统控制块(SCB)是处理器的程序员模型接口。它提供系统实现信息和系统控制,包括系统异常的配置、控制和报告。
- System timer(SysTick),系统定时器SysTick是一个24位向下计数的定时器。可以用作实时操作系统(RTOS)的滴答计时器或简单的计数器。
STM32F10x时钟树#
参考另一篇博客:https://www.cnblogs.com/qianxiaohan/p/18278597
配置STM32编程环境#
单片机型号: STM32F103C8T6
编程环境:
Keil μVision V5.24.2
VS Code 1.92
调试器Debugger: ST-Link V2
程序下载工具:STM32 ST-LINK Utility或Keil集成的程序下载工具
配置Keil环境#
- 安装Keil MDK
- 安装芯片支持包,例如STM32F10x系列,双击
Keil.STM32F1xx_DFP.2.2.0.pack
即可安装 - 使用注册机pojie软件
安装Keil MDK过程可参考:https://www.cnblogs.com/tb-chen/p/18079328
标准库#
Keil 与 VS Code搭配使用#
有两种方式:
- 安装插件
Keil Assistant
,这个插件很方便,实际上就是把VS Code当做一个编辑器来用,VS Code的插件会调用Keil,将Keil的输出结果显示到VS Code的控制台。 - Arm官方提供了VS Code插件,安装Arm官方提供的插件
Arm Keil Studio Pack (MDK v6)
,我没有测试过。
Keil Assistant
插件的安装以及使用教程:GitHub - github0null/keil-assistant
需要注意的是,比如要在项目的某文件夹下添加文件,需要在Keil中使用Manage Project Items
选项将文件添加进项目中再编译项目,才不会出错。
创建项目#
两种创建项目的方式:
-
自己创建一个模板STM32工程模板
-
使用Keil自带的
Run-Time Environment(RTE)
,添加所需文件。参考:https://blog.csdn.net/weixin_43764974/article/details/131754334
程序下载#
在STM32F10xxx中,有3中引导模式:
BOOT1和BOOT0都接低电平,配置为从Flash Memory启动,网上买的最小系统板默认是从STM32中的Flash Memory中启动。
将编译后的程序下载到flash memory中,常见的Debugger有ST-Link,J-Link,CMSIS-DAP等等。ST-Link调试器参考:https://blog.csdn.net/qq_52102933/article/details/126830904,ST-Link也可使用STM32 ST-LINK Utility软件烧录HEX文件到单片机中。
HAL库#
等待后续更新。。。
资料下载#
标准库官网下载:https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html
STM32F103系列文档下载:https://www.st.com.cn/zh/microcontrollers-microprocessors/stm32f103/documentation.html
Keil MDK(含注册机、支持包)下载:https://pan.baidu.com/s/1l0RHFE2BJziakhdwaNUeUA?pwd=1234 提取码:1234
keil官网支持包下载:https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/
作者:qianxiaohan
出处:https://www.cnblogs.com/qianxiaohan/p/18343073
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?