Loading

STM32学习记录(一):STM32概述

STM32F10x系统结构图

STM32F10x的系统结构图如下[1]

image

框图中名词解释,按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]

  1. Nested vectored interrupt controller(NVIC),嵌套向量中断控制器(NVIC)是一种支持低延迟中断处理的嵌入式中断控制器。
  2. System control block(SCB),系统控制块(SCB)是处理器的程序员模型接口。它提供系统实现信息和系统控制,包括系统异常的配置、控制和报告。
  3. 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环境

  1. 安装Keil MDK
  2. 安装芯片支持包,例如STM32F10x系列,双击Keil.STM32F1xx_DFP.2.2.0.pack即可安装
  3. 使用注册机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选项将文件添加进项目中再编译项目,才不会出错。

创建项目

两种创建项目的方式:

程序下载

在STM32F10xxx中,有3中引导模式:

image

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/


  1. 《STM32F10x参考手册》:3.1 System architecture ↩︎

  2. 《Coterx-M3编程手册》:1.3.4 Cortex®-M3 core peripherals ↩︎

posted @ 2024-08-05 14:00  记录学习的Lyx  阅读(19)  评论(0编辑  收藏  举报