文章目录

  • 一、STM32最小系统设计
    • 1.什么叫MCU最小系统?
    • 2.STM32最小系统
      • 2.1 供电电路(电源部分)
      • 2.2 复位电路
      • 2.3 时钟电路
      • 2.4 BOOT启动模式选择
      • 2.5 下载电路(JTAG/SWD)
      • 2.6 后备电池
  • 二、开发板资源介绍
    • 1.阿波罗 STM32F4/F7 开发板资源
      • 1.1 阿波罗 STM32 开发板底板资源
      • 1.2 阿波罗 STM32 开发板底板资源
    • 2.阿波罗 IO 引脚分配
  • 三、开发环境搭建
    • 1.MDK软件安装
    • 2. USB串口驱动安装
    • 3.ST-LINK驱动安装
  • 四、程序下载
    • 1.ISP串口程序下载
      • 1.1 硬件连接
      • 1.2 USB串口电路
      • 1.3 一键下载
    • 2.使用 ST-LINK 下载与调试程序
      • 2.1 ST-LINK与开发板硬件连接
      • 2.2 ST-LINK下载配置过程

一、STM32最小系统设计

1.什么叫MCU最小系统?

  一个MCU(单片机)在能正常工作正常下载程序前提下的最简电路

2.STM32最小系统

  STM32最小系统一般包含以下六部分电路:

  • 供电电路
  • 复位电路
  • 时钟:外部晶振(2个)
  • Boot启动模式选择
  • 下载电路(串口/JTAG/SWD)
  • 后备电池(可以不包含)

2.1 供电电路(电源部分)

  STM32芯片一般包含四种电源信号

名称 典型值
VDD数字电源 +3.3V
VSS数字地 0
VDDA模拟电源 +3.3V
VSSA模拟地 0

VDDVDDA之间一般接一个简单的低通滤波器即可(RC,π型即可)

对于51单片机来说,只有电源与地两种,没有分开;但是,对于STM32芯片,因为其主频比较高,为了让模拟部分与数字部分干扰降低,因此将数字部分与模拟部分分开。



  以“正点原子”的开发板为例,产生一个5V的电源,然后通过一个稳压管(比如:AMS1117)稳出一个3.3V,这个3.3V就作为数字电源,连接到VDDGND连接到地(模拟地与数字地)。

  数字电源与模拟电源之间接一个简单的低通滤波器即可。
  供电电路部分比较简单,只需要:

  • 第一步:找出芯片所有的电源与地,包括模拟电源、模拟地、数字电源、数字地。
  • 第二步:确定电源的输入输出电压范围,然后为其提供一个稳定的供电电源。
  • 第三步:对数字电源VDD和模拟电源VDDA之间设计一个简单的低通滤波器。

经过这三步,供电电路部分就可以设计完成。

2.2 复位电路

  基本上,对于所有的单片机都需要复位电路。对于STM32芯片来说,有一个复位引脚NRST

  接下来,设计复位电路。实际上,单片机的复位电路都是比较固定的,通过按键的方法,按一下这个按键,产生一个信号。

RST按键没有按下时,是高电频;当RST按键按下时,复位引脚接到地,就会产生低电频。与51单片机中的复位类似,复位引脚从高往低跳变,低电平持续一段时间,就可以产生复位。

2.3 时钟电路

  STM32外部可以提供两种时钟:高速外部时钟低速外部时钟。高速的外部时钟一般都是给芯片的内核来供电,作为系统时钟。低速的外部时钟主要是给RTC(实时时钟)来用的。

  • 高速时钟

    • F103/F407

      在F103/F407开发板上用的是8MHz的晶振
    • F429/F767

      在F429/F767开发板上用的是25MHz的晶振
  • 低速时钟

    低速时钟指的是外接比较稳定的32.768KHz晶振产生的低速的时钟,主要是给RTC(实时时钟)来用的。

2.4 BOOT启动模式选择

  stm32BOOT启动模式选择有两个引脚:BOOT0BOOT1BOOT0BOOT1联合决定了stm32启动模式。

2.5 下载电路(JTAG/SWD)

  下载程序的方法有3种:

  • SWD
    通信引脚为JTMSJTCK,满足程序下载与调试
  • JTAG
    有5个引脚需要相连,比较复杂,满足程序下载与调试
  • 串口ISP
    如果不需要程序调试,可以直接使用串口下载。

对于最小电路,一般留有SWD接口(调试)和串口引脚。

2.6 后备电池

  stm32有一个后备电池引脚VBAT。后备电池用来给后备区域供电。当芯片断电之后,后备区域还正常运行,从而保存一些数据。

二、开发板资源介绍

1.阿波罗 STM32F4/F7 开发板资源

  阿波罗开发板采用核心板+底板的形式,当使用STM32F429 的核心板时,它就是一款 STM32F429 开发板,当使用 STM32F746 核心板时,它就是一款 STM32F746 开发板。ALIENTEK 阿波罗 STM32F4/F7 开发板分为底板和核心板两部分,接下来我们分别介绍。

1.1 阿波罗 STM32 开发板底板资源

  阿波罗 STM32 开发板的底板资源图如下所示:

  ALIENTEK 阿波罗 STM32F429 开发板底板板载资源如下:

  • 1 个核心板接口,支持 STM32F429/F746 等核心板
  • 1 个电源指示灯(蓝色)
  • 2 个状态指示灯(DS0:红色,DS1:绿色)
  • 1 个红外接收头,并配备一款小巧的红外遥控器
  • 1 个九轴(陀螺仪+加速度+磁力计)传感器芯片,MPU9250
  • 1 个高性能音频编解码芯片,WM8978
  • 1 个无线模块接口,支持 NRF24L01 无线模块
  • 1 路光纤输入接口(音频,仅 F7 支持)
  • 1 路 CAN 接口,采用 TJA1050 芯片
  • 1 路 485 接口,采用 SP3485 芯片
  • 2 路 RS232 串口(一公一母)接口,采用 SP3232 芯片
  • 1 路单总线接口,支持 DS18B20/DHT11 等单总线传感器
  • 1 个 ATK 模块接口,支持 ALIENTEK 蓝牙/GPS/MPU6050/RGB 灯模块
  • 1 个光环境传感器(光照、距离、红外三合一)
  • 1 个标准的 2.4/2.8/3.5/4.3/7 寸 LCD 接口,支持电阻/电容触摸屏
  • 1 个摄像头模块接口
  • 1 个 OLED 模块接口
  • 1 个 USB 串口,可用于程序下载和代码调试(USMART调试)
  • 1 个 USB SLAVE 接口,用于 USB 从机通信
  • 1 个 USB HOST(OTG)接口,用于 USB主机通信
  • 1 个有源蜂鸣器
  • 1 个 RS232/RS485 选择接口
  • 1 个 RS232/模块选择接口
  • 1 个 CAN/USB 选择接口
  • 1 个串口选择接口
  • 1 个 SD 卡接口(在板子背面)
  • 1 个百兆以太网接口(RJ45
  • 1 个标准的 JTAG/SWD 调试下载口
  • 1 个录音头(MIC/咪头
  • 1 路立体声音频输出接口
  • 1 路立体声录音输入接口
  • 1 个小扬声器(在板子背面)
  • 1 组多功能端口(DAC/ADC/PWM DAC/AUDIO IN/TPAD
  • 1 组 5V 电源供应/接入口
  • 1 组 3.3V 电源供应/接入口
  • 1 个参考电压设置接口
  • 1 个直流电源输入接口(输入电压范围:DC6~24V
  • 1 个启动模式选择配置接口
  • 1 个 RTC 后备电池座,并带电池
  • 1 个复位按钮,可用于复位 MCULCD
  • 4 个功能按钮,其中 KEY_UP(即 WK_UP)兼具唤醒功能
  • 1 个电容触摸按键
  • 1 个电源开关,控制整个板的电源
  • 独创的一键下载功能
  • 引出 110 个 IO

  ALIENTEK 阿波罗 STM32F429 开发板底板的特点包括:

  • 接口丰富。板子提供十来种标准接口,可以方便的进行各种外设的实验和开发。
  • 设计灵活。我们采用核心板+底板形式,一款底板可以学习多款 MCU,减少重复投资;板上很多资源都可以灵活配置,以满足不同条件下的使用;我们引出了 110IO 口,极大的方便大家扩展及使用。板载一键下载功能,可避免频繁设置 B0B1 的麻烦,仅通过 1 根 USB 线即可实现 STM32 的开发。
  • 资源丰富。板载高性能音频编解码芯片、九轴传感器、百兆网卡、光环境传感器以及各种接口芯片,满足各种应用需求。
  • 人性化设计。各个接口都有丝印标注,且用方框框出,使用起来一目了然;部分常用外设大丝印标出,方便查找;接口位置设计合理,方便顺手。资源搭配合理,物尽其用。

1.2 阿波罗 STM32 开发板底板资源

  STM32F429 核心板资源图如下:

  ALIENTEK STM32F429 核心板板载资源如下:

  • CPUSTM32F429IGT6LQFP176FLASH1024KBSRAM256KB
  • 外扩 SDRAMW9825G6KH32M 字节
  • 外扩 NAND FLASHMT29F4G08512M 字节
  • 外扩 SPI FLASHW25Q25632M 字节
  • 外扩 EEPROM24C02256 字节
  • 2 个板对板接口(在底部),引出 110IO,方便接入各种底板
  • 1 个 5V&3.3V 焊点,支持外接电源或输出电源给外部
  • 1 个 Micro USB 接口,可作 USB SLAVE/HOST(OTG)使用
  • 1 个电源指示灯(蓝色)
  • 1 个状态指示灯(红色)
  • 1 个 TTL 串口(USART1
  • 1 个复位按钮,可用于复位 MCULCD
  • 1 个功能按钮,WKUP,可以用作 MCU 唤醒
  • 1 个 RGB LCD 接口,支持 RGB 接口的 LCD 屏(RGB565 格式)
  • 1 个 SWD 调试接口

  ALIENTEK STM32F429 核心板的特点包括:

  • 体积小巧。核心板仅 65mm*45mm 大小,方便使用到各种项目里面。
  • 接口丰富。核心板自带了串口、SWD 调试接口、RGB LCD 屏接口、USB 接口和 3.3V&5V电源接口等,并通过板对板接口,引出了 110IO 口,满足各种应用需求。
  • 资源丰富。核心板板载:32MB SDRAM32MB SPI FLASH512MB NAND FLASHEEPROM 等存储器,可以满足各种应用需求。
  • 性能稳定。核心板采用 4 层板设计,单独地层、电源层,且关键信号采用等长线走线,保证运行稳定、可靠。
  • 人性化设计。各个接口都有丝印标注,使用起来一目了然;接口位置设计合理,方便顺手。

2.阿波罗 IO 引脚分配

  将阿波罗开发板主芯片:STM32F429IGT6IO 资源分配做了一个总表,




引脚栏即 STM32F429IGT6 的引脚编号;GPIO 栏则表示 GPIO;连接资源栏表示了对应 GPIO 所连接到的网络;独立栏,表示该 IO 是否可以完全独立(不接其他任何外设和上下拉电阻)使用,通过一定的方法,可以达到完全独立使用该 IOY 表示可做独立 ION表示不可做独立 IO;连接关系栏,则对每个 IO 的连接做了简单的介绍。

三、开发环境搭建

1.MDK软件安装

  RealView MDKKeil公司开发的,为基于CortexARM7ARM9等处理器设备提供的一个完整的开发环境。 MDK=Keil for ARM, 大家学习51的时候用的Keil C51
  首先,先安装MDK5,在 MDK5 安装完成后,要让 MDK5 支持 STM32F429 的开发,还要安装 STM32F429 的器件支持包:Keil.STM32F4xx_DFP.2.8.0.pack(STM32F4 系列的器件包)。默认软件是试用版的,只能编译不超过32K的代码。无力购买正版的,可以注册后使用。注册方法可参考博客,亲测有效!

MDK5安装注意事项:

  • 安装路径为英文路径(不要是中文路径)。
  • 系统用户名不能为中文
  • 多个版本MDK(Keil)不要安装在同一目录。
  • MDK5需要加载芯片对应的支持包。

2. USB串口驱动安装

  USB串口作用如下:

  • 可以当串口使用。
  • 如果USB串口连接到STM32的串口1(STM32 ISP下载只能是串口1)的话,那么可以用来串口下载程序
  • 因为要连接到USB,所以可以用来USB供电

  USB串口驱动芯片型号:CH340。当安装CH340驱动后,就可以使用串口下载工具FlyMcu(McuISP)进行下载。

此时,用USB线连接笔记本与stm32USB 232接口,按下电源键,就会发现驱动安装成功。

3.ST-LINK驱动安装

  ST-LINK驱动作用:安装了驱动之后,就可以在windows下配合MDK进行程序下载和调试。驱动安装完成后,如下:

四、程序下载

  STM32F4 的程序下载有多种方法:USB、串口、JTAGSWD 等,这几种方式,都可以用来给 STM32F429 下载代码。

1.ISP串口程序下载

1.1 硬件连接

  首先要在板子上设置一下,在板子上把 RXDPA9STM32TXD),TXDPA10(STM32RXD)通过跳线帽连接起来,这样我们就把 CH340GMCU 的串口 1 连接上了。这里由于ALIENTEK 这款开发板自带了一键下载电路,所以我们并不需要去关心 BOOT0BOOT1 的状态,但是为了让下载完后可以按复位执行程序,建议把 BOOT1BOOT0 都设置为 0。设置完成如图所示:

特别注意

  • STM32ISP下载,只能使用串口1,也就是对应串口发送接收引脚PA9,PA10。不能使用其他串口(例如串口2PA2,PA3)用来ISP下载。

1.2 USB串口电路

  STM32F429 开发板板载了一个 USB 串口,其原理图如下:

  图中 Q4Q5 的组合构成了我们开发板的一键下载电路,只需要在 flymcu 软件设置:DTR的低电平复位,RTS 高电平进 BootLoader。就可以一键下载代码了,而不需要手动设置 B0 和按复位了。其中,RESET 是开发板的复位信号,BOOT0 则是启动模式的 B0 信号。
  一键下载电路的具体实现过程:首先,mcuisp 控制 DTR 输出低电平,则 DTR_N 输出高,然后 RTS 置高,则 RTS_N 输出低,这样 Q5 导通了,BOOT0 被拉高,即实现设置 BOOT0 为 1,同时 Q4 也会导通,STM32F429 的复位脚被拉低,实现复位。然后,延时 100ms 后,mcuisp控制 DTR 为高电平,则 DTR_N 输出低电平,RTS 维持高电平,则 RTS_N 继续为低电平,此时 STM32F429 的复位引脚,由于 Q4 不再导通,变为高电平,STM32F429 结束复位,但是 BOOT0还是维持为 1,从而进入 ISP 模式,接着 mcuisp 就可以开始连接 STM32F429,下载代码了,从而实现一键下载。

1.3 一键下载

  这里简单说明一下一键下载电路的原理,我们知道,STM32 串口下载的标准方法是两个步骤:

  • B0V3.3(保持 B1GND)。
  • 按一下复位按键。

通过这两个步骤,我们就可以通过串口下载代码了,下载完成之后,如果没有设置从0X08000000 开始运行,则代码不会立即运行,此时,你还需要把 B0 接回 GND,然后再按一次复位,才会开始运行你刚刚下载的代码。所以整个过程,你得跳动 2 次跳线帽,还得按 2 次复位,比较繁琐。而一键下载电路,则利用串口的 DTRRTS 信号,分别控制 STM32的复位和 B0,配合上位机软件(flymcu),设置:DTR 的低电平复位,RTS 高电平进 BootLoader,这样,B0STM32 的复位,完全可以由下载软件自动控制,从而实现一键下载。

  • 环境准备
    CH340驱动安装(参考前面USB串口驱动安装)
  • 下载工具配置(FlyMcu/McuIsp)

    1. 搜索串口,选择虚拟的USB串口: COMx:空闲USB-SERIAL CH34
    2. 设置波特率:F4芯片使用76800F1芯片可以更高
    3. 勾上“编程前重装文件”
    4. 选择STMISP选项卡,然后勾上选项:“校验” 以及 “编程后执行”
    5. 选项字节区 的“编程到FLASH时写选项直接”不要勾上
    6. 左下方:选择第四个“ DTR的低电平复位,RTS高电平进bootloader”

  通过按开始编程(P)这个按钮,一键下载代码到 STM32 上,下载成功后如图所示:

第 1 个圈,圈出了 flymcu 对一键下载电路的控制过程,其实就是控制 DTRRTS 电平的变化,控制 BOOT0RESET,从而实现自动下载。第 2 个圈这里需要特别注意,因为 STM32F4 的每次下载都需要整片擦除,而 STM32F4 的整片擦除是非常慢的(STM32F1比较快),这里的全片擦除,得等待几十秒钟,才可以执行完成,请大家耐心等待。但是 ST-LINK下载不存在这个问题,所以,有条件的话,最好还是用 ST-LINK 下载比较快。

2.使用 ST-LINK 下载与调试程序

  串口只能下载代码,并不能实时跟踪调试,而利用调试工具,比如 ST-LINKJLINKULINK 等就可以实时跟踪程序,从而找到你程序中的 bug,使你的开发事半功倍。这里我们以 ST-LINK 为例,说说如何在线调试 STM32F429
  ST-LINK 支持 JTAGSWD,同时 STM32F429 也支持 JTAGSWD。所以,我们有 2 种方式可以用来调试,JTAG 调试的时候,占用的 IO 线比较多,而 SWD 调试的时候占用的 IO 线很少,只需要两根即可。

2.1 ST-LINK与开发板硬件连接

  在安装 ST-LINK 的驱动之后,我们接上 ST-LINK,并用灰排线连接 STLINK 和开发板的JTAG 接口,

2.2 ST-LINK下载配置过程

  • 环境准备
    STLINK驱动+MDK5安装
  • MDK软件上配置ST-LINK
      打开之前新建的工程,点击 ,打开 Options for Target 选项卡,在 Debug栏选择仿真工具为 ST-Link Debugger

      上图中我们还勾选了 Run to main(),该选项选中后,只要点击仿真就会直接运行到 main 函数。然后我们点击 Settings,设置 ST-LINK 的一些参数,

      我们使用 ST-LINKSW 模式调试,因为我们 JTAG 需要占用比 SW 模式多很多的 IO 口,而在开发板上这些 IO 口可能被其他外设用到,可能造成部分外设无法使用。所以,我们建议大家在调试的时候,一定要选择 SW 模式。
      单击 OK,完成此部分设置,接下来我们还需要在 Utilities 选项卡里面设置下载时的目标编程器,

      我们直接勾选 Use Debug Driver,即和调试一样,选择 ST-LINK 来给目标器件的 FLASH 编程,然后点击 Settings,设置如图所示:

      这里 MDK5 会根据我们新建工程时选择的目标器件,自动设置 flash 算法。我们使用的是STM32F429IGT6FLASH 容量为 1M 字节,所以 Programming Algorithm 里面默认会有 1M 型号的 STM32F4xx FLASH 算法。最后,选中 Reset and Run 选项,以实现在编程后自动运行,其他默认设置即可。
      在设置完之后,点击 OK,然后再点击 OK,回到 IDE 界面,编译一下工程。接下来我们就可以通过 ST-LINK 下载代码和调试代码。配置好 ST-LINK 之后,使用 ST-LINK 下载代码就非常简单,大家只需要点击 LOAD 按钮就可以进行程序下载。下载完成之后程序就可以直接在开发板执行。如图所示:

STM32F4 | 最小系统设计 | 开发板资源介绍 | 开发环境搭建 | 程序下载相关推荐

  1. 51单片机 | 如何学习单片机 | 开发板功能介绍 | 开发板使用方法 | 51单片机介绍

    文章目录 一.如何学习单片机 1.学习哪种类型的单片机 2.学习单片机的最佳方法 3.学习单片机的准备工作 4.学习单片机的常见疑问 二.开发板功能及使用介绍 1.开发板功能介绍 2.开发板使用方法 ...

  2. OK6410开发板资源介绍---嵌入式回归第一篇

    一晃时隔大半年了,今天起重新开始学习国嵌的OK6410 精通嵌入式课程,之前学到第四季老大视频没更完,而且更的实在太慢了,大学那会刚开始学的时候也走了不少弯路,不过当时充满了学习的激情,前面的更的视频 ...

  3. STM32阿波罗F767开发板资源介绍

    开发板硬件资源: 底板+核心板,通过板对板的接口连接. 核心板: 1.SPI FLASH: SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.S ...

  4. 《ArcGIS Runtime SDK for .Net开发笔记》--介绍与环境搭建

    一. ArcGIS Runtime SDK for .NET介绍 ArcGIS Runtime SDK for .net是一款针对windows平台的开发包.能够在开发出在windows phone, ...

  5. 君正4750开发板使用日记2-Linux环境搭建与内核编译

    为什么80%的码农都做不了架构师?>>>    Linux环境搭建与内核编译 上一篇中把4750开发板与PC的硬件连通了,这一篇记录的是基本的Linux环境的搭建.其实官方文档已经比 ...

  6. STM32F407 开发环境搭建 程序下载 个人笔记

    详细资料: http://www.openedv.com/thread-13912-1-1.html 需要安装的软件: 1.keil(MDK,必选),用keygen破解 2.CH340驱动,(usb串 ...

  7. STM32开发(1)----stm32f103c6t6开发板介绍和环境搭建

    stm32f103c6t6开发板介绍 前言 一.stm32f103c6t6芯片资源介绍 1.STM32 的命名规则 二.最小系统开发板介绍 三.开发板基本使用方法 1.软件安装 1.1MDK5 安装 ...

  8. 【STC32G12K128开发板】——STC32G12K128开发板介绍

    版权声明:本文为博主原创文章,转载请附上原文出处链接. 文章目录 前言 一.STC32G12K128系列单片机介绍 二.STC32G12K128开发板概述 三.STC32G12K128开发板硬件框图 ...

  9. XMOS软件开发入门(1) - 开发板硬件资源介绍

    文章目录 文档目的 XMOS简介 评估板"xCORE VOCAL FUSION XP-VF3100-BASE"简介 主处理器资源 GPIO介绍 GPIO简介 连接FLASH的GPI ...

最新文章

  1. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
  2. 破译手势在对话中的意义
  3. For与Function进阶实战、Lazy的使用笔记总结
  4. 洛谷P1494 [国家集训队]小Z的袜子
  5. 111... 南邮NOJ 1079
  6. linux内核开发常用站点
  7. springboot办公OA考勤请假系统java
  8. 最小二乘法曲线拟合+C代码
  9. 艾宾浩斯记忆曲线背单词
  10. 2023新年快乐,友盟+伴你岁岁年年
  11. 闪光网-彭亮《学后感——彭亮总结》
  12. 人人都是钢铁侠,超级盔甲问世
  13. Detachment(数论)
  14. POJ海贼王之伟大航路(dfs)
  15. python数学知识_【数学知识】高一的集合知识的Python编程实现
  16. htcvive怎么输入_HTC Vive如何播放视频 3种方法教你用Vive播放VR视频
  17. 比较两组数据的差异用什么图更直观_扩增子图表解读7三元图:三组差异数量和关系...
  18. 【API】聊天机器人接口
  19. 广东省交通行业十四五项目前景与建设规模分析报告2022版
  20. 干货!11个产品营销策略(一)

热门文章

  1. dba招生_深圳DBA项目招生简介
  2. 什么是中文分词及中文分词的应用
  3. 【JavaBeans中的属性!】
  4. 金立金刚GN5001刷机救黑砖
  5. clickhouse 离线安装
  6. word添加水印后多出一条线的删除方法
  7. 基于Java的雷电游戏设计(含源文件)
  8. 设置MySQL数据库允许root用户任意IP地址访问(linux)
  9. @html.dropdownlist默认多选,Html.DropDownList()赋默认值
  10. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxxxx