您现在的位置是:网站首页> 硬件

STM32开发相关信息收集

  • 硬件
  • 2025-04-06
  • 1106人已阅读
摘要

STM32开发相关信息收集

STM32入门教程-2023版

STM32芯片型号的命名解读

使用串口烧写stm32程序(串口ISP)

用STM32代替arduino开发

带你了解怎么在arduino开发环境中使用STM32

Window7下搭建Keil(MDK)开发环境ST-LINK下载器



STM32入门教程-2023版




STM32芯片型号的命名解读

Keil uVision5 STM32 pack安装包

FPGA 现场可编程门阵列,通过编程改变内部硬件结构,实现锁需功能的芯片

jtag接口下载程序 标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。

STM32芯片型号的命名解读

1.png

1.png



STM32是ARM Cortex内核单片机和微处理器市场和技术方面的领先者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB,WL),超过1000个型号。


高性能MCU:STM32F2、STM32F4、STM32H7、STM32F7


主流MCU:STM32G0、STM32F0、S TM32F1、STM32G4、STM32F3


超低功耗MCU:STM32L0、STM32L1、S TM32L4+、STM32L4、STM32U5、STM32L5


无线系列MCU:STM32WB、STM32WL

如此多的型号,怎么区分呢?我们以STM32F407ZET6为例详细解读一下

(1)STM32:STM32代表ARM Cortex-M4内核的32位微控制器。


(2)F:F代表芯片子系列。


(3)407:407代表高性能基础系列。


(4)R:代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚。


(5)B:代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash。


(6)T:代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。


(7)6:代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。


擅长领域:STM32系列嵌入硬件架构设计,逻辑电路的编程,PCB设计


STM32主要产品型号:STM32F407工控板 - EMB8628I、STM32F407工控板 - EMB8626I、STM32F107工控板 - EMB8616I、STM32F107工控板 - EMB8600I、STM32工控模块、工业DTU模块、工业RTU模块



使用串口烧写stm32程序(串口ISP)

stm32的芯片,出厂时都自带了串口烧写功能,可以在不使用特殊的下载器、只用串口的条件下将程序烧写进去。


串口烧写需要的上位机软件,网上有很多免费的软件可用,我们使用sscom这个串口软件,可以从小工具里找到它带的stm32 ISP,也即是串口下载功能:

1.png



要使用串口下载功能,需要先生成要烧写的*.hex文件,在keil如下设置,然后再编译,就能生成hex目标文件了:

2.png



在下载前,硬件上,需要在开发板上电前设置一下boot引脚的状态,以使得stm32芯片在启动运行时进入系统存储区,运行串口下载程序;按照下表,我们需要把boot0引脚拉低、boot1引脚拉高,才能在复位后进入系统存储器运行:


3.png


设置好芯片的boot0和boot1引脚后,连接计算机的串口到开发板的串口(stm32能支持串口下载的是串口1)。

如果是M3内核非互联网型的板子这里的串口必须是串口1,对应为GPIO9和GPIO10。如果是M4内核,可以是下述端口。

● USART1(PA9/PA10)

● USART3(PB10/11 和 PC10/11)

● CAN2(PB5/13)

● USB OTG FS(PA11/12) 从设备模式(DFU:器件固件升级)

在sscom软件中,打开要下载的hex目标文件;然后将stm32芯片上电或者复位一下,再点击开始下载stm:


4.png


接下来就是等待下载完成了,下载时会有进度条,下载完成后也会有提示:

5.png



Stm32串口下载的功能,在想要节省一些IO口资源时特别有用,如果印制板的面积特别小则可以省去SWD或JTAG口的空间;在IO口不够用时,省下来的SWD/JTAG口引脚可以配置为GPIO;在没有下载器的情况下也可以通过串口下载来应应急。




用STM32代替arduino开发

arduino一直以来深受广大极客的喜爱,丰富的库以及外围扩展,但是Atmega328已经比较老旧了,STM32相比而言,性能要比arduino强大了太多,因此我们选择用STM32F103C系列来代替arduino开发

下面跟随我们一起在arduino IDE中搭建stm32开发环境吧

1

硬件准备:

STM32F103C8T6 蓝色开发板 x 1(如图)

 

软件准备:

Arduino开发环境

操作步骤:

运行Arduino。选择文件->首选项,在附加开发板管理器中填入以下网址:

http://dan.drown.org/stm32duino/package_STM32duino_index.json

选择‘好’,保存设置。退出该界面

打开工具->开发板->开发板管理器

如上图所示。点击后会需要一段时间从网络上加载开发板信息,请耐心等待。

加载完成后,选择‘贡献’项,搜索stm32,选择STM32F1XX 开发包。

 

 下载与安装将花费一段(大约十几分钟)时间。。

 安装完之后,工具--开发板管理器里面找到 "Genneric STM32F103C series"选中即可

 

下载和烧写Bootloder

首先我们要下载Bootloader,进入一个开源项目,地址如下:
https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries

选择你的STM32最小系统板的除电源指示灯外的另一个LED所对应的接口名字的文件下载(一定要选择对应的),我的板子为PC13,所以下载这个:

然后使用USB转串口线连接开发板和电脑USB,其中串口线的TX RX分布连接开发板PA10 PA9,然后将BOOT0短接3.3V BOOT1短接GND进入烧写状态,串口线的VCC GND分布连接开发板的5V 即可无需另外供电。

所需工具:flash_loader_demo_v2.8.0

ST官方下载地址:http://www.st.com/en/development-tools/flasher-stm32.html

 选择USB串口线的串口号,注意需要boot0 为1,boot1 为0(默认全是0)

 

 

 

 在下列红色框内添加下载的bin文件,next,即可完成下载(bootloder的烧写)

 

 bootloader下载完成后,即可进行用电脑通过MicroUSB连接板子进行开发了,不过得先装一下驱动。

驱动安装

去github上下载代码

Arduino_STM32:https://github.com/rogerclarkmelbourne/Arduino_STM32

 下载压缩文件并解压,以管理员身份运行install_drivers.bat和install_STM_COM_drivers.bat

 然后将开发板的串口线断开,将开发板BOOT0接GND后,使用手机数据线连接开发板MicroUSB和电脑USB开始安装驱动,会发现一个新的USB串行设备,下面为COM11

 下载例程测试

将Arduino IDE的上传方式设置为STM32duino bootloader

端口号改成新的串口号

打开一个例程,LED闪烁的,例程里引脚为PB1,修改PC13(和板子对应,也可以不修改接一个LED即可)

 例程如下,然后编译上传:

 出现Done就代表上传成功了,

 然后就可以看到LED闪烁了,大功告成,喝杯水休息下吧。


带你了解怎么在arduino开发环境中使用STM32

如果只是想做点东西玩玩,不想深入的学可以考虑用arduino开发方式来学习STM32,当然用的最多的还是Keil,然后这两年大家都在往vscode上转,主题界面和代码补齐功能确实非常赞

视频

在Arduino中安装STM32开发板

  1. Arduino IDE中打开“文件 -> 首选项”,在“附加开发板管理器地址”中输入:https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
    开发板管理器网址
  1. Arduino IDE中打开“工具 -> 开发板 -> 开发板管理器”,滑倒最下面可以看到:
    开发板管理器
    安装最新的即可,我的版本是1.9.0
  1. Arduino IDE中打开“工具 -> 开发板”,选择合适的开发板类型,例如最简单的STM32板子。我选择的是RUMBA32板子
    开发板选择

3. 安装STM32CubeProgrammer

4. 添加STM32CubeProgrammer中的bin文件夹的路径到系统路径中

5. 配合好BOOT0,使用串口/DFU进行烧录

在这里只需要STM32CubeProgrammer初次设置好了是串口方式/DFU方式,之后就不需要用STM32CubeProgrammer了
在DFU模式中,如果需要重新下载程序,需要BOOT0为1,按reset复位,之后才可以烧录程序
其原理应该是BOOT0为1时,按reset后运行DFU程序,系统进行DFU模式,之后就可以用Arduino进行烧录
配置USB支持串口,则可以直接使用USB进行串口读取与发送





Top