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/