一. 创建工程

首先启动stm32CubeMX

1.RCC配置

RCC : Reset and Clock Control

这里我将MCU的外部高速时钟(HSE)设置为:

Crystal Resonator:晶体谐振器(晶振,石英晶振) Ceramic Resonator:陶瓷谐振器(陶瓷振子)

外部低速时钟(LSE)不使能.

2. SYS设置

Debug栏需要设置为 Serial Wire , 否则无法使用ST Link等调试器.

GPIO设置示例:

时钟配置

注:我选择的芯片型号是: STM32F103C8T6

1.MCU内部HSI RC震荡电路误差较大,一般不使用.

APB(Advanced Peripheral Bus,高级外设总线),分为APB1APB2两个独立时钟域:

  • APB1:低速外设域,挂载低速率外设,时钟上限更低;
  • APB2:高速外设域,挂载高速外设,时钟上限更高。

APB1 peripheral clocks (MHz)

含义:APB1 总线的普通外设工作时钟频率,是挂载在 APB1 总线上非定时器类外设的基准工作时钟。

  • 挂载外设:USART2/3、SPI2、I2C1/2、CAN、USB、电源管理 (PWR)、备份寄存器 (BKP)、DAC、窗口看门狗等低速外设。

 APB1 Timer clocks (MHz)

含义:APB1 总线上定时器(TIM2~TIM7 等通用 / 基本定时器)的专属计数时钟

APB2 peripheral clocks (MHz)

含义:APB2 总线的普通外设工作时钟频率,是挂载在 APB2 总线上高速非定时器外设的基准工作时钟。

  • 挂载外设:GPIOA~G、USART1、SPI1、ADC 模数转换器、复用功能 IO (AFIO) 等高速外设。

APB2 timer clocks (MHz)

含义:APB2 总线上定时器(主要是高级定时器 TIM1,大容量型号还包含 TIM8)的专属计数时钟。

注意:工程路径不要有中文和空格.

使用stm32cubeMX生成代码完毕后,回到vscode,在vscode中打开生成的项目文件夹.

对于C语言的语法解析,STM32官方插件已经自带此功能,所以不要安装上图中推荐的拓展,避免双方发生冲突

当对CMakeList文件进行修改后,需要根据新的CMakeList对工程进行重新配置.如上图所示:

安装stlink驱动,确保电脑接上stlink后在设备管理器中能够正确识别该器件.

如上图所示:点击运行和调试,我这里是stlink,所以我选择stlink GDB server

如果出现烧录或连接失败,请升级固件:

固件比较老旧的stlink可能会出现烧录失败,
可以使用stlink固件升级功能对固件进行升级
注意在升级前和升级完成后都要插拔一次stlink与电脑的连接

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐