基于STM32L476RGT6的STM32CubeMX配置与工程创建

使用STM32CubeMX配置STM32L476RGT6(64引脚)工程的步骤如下,适用于初次配置的基础流程:

一、准备工作

  1. 安装软件
    • 安装 STM32CubeMX(建议最新版本)
    • 安装对应芯片的固件包:启动CubeMX后,上方进入 Help -> Manage embedded software packages,找到 STM32L4 Series 下的 STM32CubeL4 并安装(包含STM32L476系列支持),多个版本的芯片包,只需要安装一个即可。必须安装,安装完成后建议重启CubeMX进行以下操作。

二、创建新项目并选择芯片

  1. 打开STM32CubeMX,中间选择Start My project from MCU创建。点击 “New Project” 。有三种创建方式。
  2. 在芯片选择界面:
    • 左侧上方搜索框输入 STM32L476RGT6
    • 在中间搜索结果中选择该型号(确认封装为64-LQFP),点击右上角 “Start Project” ,开始项目。

三、基础配置(必做)

在项目设置界面,左侧System Core下拉,配置RCC,SYS。此部分具体的配置原理会单独写一篇文章讲解。

1. 调试接口配置(SYS)

为了后续下载和调试程序,需启用SWD接口:

方法一(简单,便捷):在 System Core -> SYS 中,将 Debug 选项设置为 “Serial Wire”(自动占用PA13/PA14)。

方法二:在左侧引脚图中,找到 PA13(SWDIO)和 PA14(SWCLK),右键点击这两个引脚,选择 “Debug” -> “SWDIO”“SWCLK”

​ 这里说一下此项配置的意义。简单讲就是给单片机 “分配” 两个专用引脚(PA13/PA14),专门用于调试时的电脑和单片机通信,确保你能正常下载程序、找 bug。

​ 首先理解什么是”Debug(调试)“。使用Keil软件的Debug功能时,程序会根据你的操作,停在某一行指令。并返回当前某个变量的值。对于这一操作,就是让电脑(通过 IDE 软件,如 Keil)和单片机 “对话”,电脑可以给单片机发命令,单片机可以给电脑回传信息。这种 “对话”(通信) 需要硬件接口来实现,而 “Serial Wire” 就是 STM32 常用的一种 “对话方式”。

​ 什么是“Serial Wire” ?它是 ARM 公司定义的一种简化的调试接口标准(全称 Serial Wire Debug,简称 SWD),只需要 2 根线就能实现调试功能:SWDIO:负责 “数据传输”,SWCLK:负责 “时钟同步”。

​ 为什么要在 “SYS” 里设置?STM32 的引脚(比如 PA13、PA14)默认可能被当作普通的 “输入 / 输出引脚”(比如接 LED、按键)。但当你在 System Core -> SYS 里把 Debug 选项设为 Serial Wire 时,单片机就会 “专用” PA13 和 PA14 这两个引脚:PA13 强制作为 SWDIO(数据传输线);PA14 强制作为 SWCLK(时钟同步线)。这两个引脚就不再能当普通 IO 用了,专门负责调试时的 “电脑 - 单片机对话”。

​ 如果不设置,PA13、PA14 可能被当作普通引脚,或者调试功能没启用。这时你用调试器(比如 ST-Link)连接单片机时,会出现:电脑找不到单片机(“无法连接目标设备”);程序下载不进去;没法暂停程序、看变量值(等于失去了 “调试” 能力),等等问题。

2. 时钟配置(RCC)

STM32L476最高主频为80MHz,可在数据手册中找到,见《STM32L476xx规格书》第一页Features->Core,具体配置原理会单独写一篇文章。以下是配置步骤。注意!该配置只作为参考,具体配置需要根据硬件、性能要求等具体设置。

1、进入 System Core -> RCC

若用到外部时钟,勾选 High Speed Clock (HSE)(外部高速时钟,若使用外部晶振),选择 Crystal/Ceramic Resonator
若仅用内部时钟,保留 High Speed Clock (HSE) 使能(默认Disable) 。

2、上方进入 Clock Configuration 标签:

​ 若硬件上已经外接了8MHz 的 HSE 晶振(勾选了HSE Clock并选择Crystal/Ceramic Resonator),那么优先用HSE 作为 PLL 输入源(精度比内部 HSI 更高)

  • PLL来源选择 HSEHSI(根据硬件决定)
  • 配置PLL参数:确保 PLLNPLLMPLLR 计算后,System Clock Mux 输出为 80MHz(例如:HSE=8MHz → PLLM=1 → PLLN=20 → PLLR=2 → 8*20/2=80MHz)
  • 确认 HCLKPCLK1(APB1,最高80MHz)、PCLK2(APB2,最高80MHz)频率正确

在这里插入图片描述

四、外设配置(按需选择)

以常用外设为例,说明配置方法。此部分由AI生成,可能与实际标识有出入。

1. GPIO(如LED、按键)
  • 假设使用 PC13 作为LED输出(低电平点亮):
    • 在引脚图中找到 PC13,右键选择 "GPIO_Output"
    • 进入 Configuration -> GPIO -> PC13
      • GPIO mode(工作模式):Output Push Pull
      • GPIO Pull-up/Pull-downPull-up(避免悬空)
      • Maximum output speedLow(LED无需高速)
2. UART(如USART2)
  • 假设使用 PA2(TX)和 PA3(RX)作为USART2引脚:
    • 进入 Connectivity -> USART2,模式选择 “Asynchronous”(异步模式)
    • 自动分配引脚(或手动指定PA2/PA3,需确认引脚复用功能)
    • 配置参数:Baud Rate 设为 115200Data Width 8位,无校验位,1停止位
    • 若需中断,在 NVIC Settings 中勾选 USART2 global interrupt
3. SPI/I2C(如I2C1)
  • 进入对应外设(如 Connectivity -> I2C1),选择模式(如 I2C
  • 配置引脚(如 PB6=SCL,PB7=SDA),设置速率(如100kHz)

五、工程生成设置

  1. 上方进入 Project Manager 标签:

    • Project 选项:

      • Project Name:输入工程名(如 STM32L476_Project
      • Project Location:选择保存路径(千万注意!避免中文路径!)
      • Toolchain/IDE:选择使用的IDE(如 MDK-ARM 对应Keil,STM32CubeIDE 等),这里选择MDK,最新版本
    • 左侧Code Generator 选项:

      第一个框中

      选择第二项:Copy only…

      第二个框中

      • 勾选第一项 Generate peripheral initialization as a pair of '.c/.h' files per peripheral(外设代码分文件存放)
      • 勾选 Keep user code when re-generating(重新生成时保留用户代码)
      • 勾选第三项Delete…

六、生成代码

点击右上角 “GENERATE CODE”,等待CubeMX生成工程文件。生成完成后,可选择中间选项,点击 “Open Project” 直接打开工程。

七、Keil软件配置

在Keil界面,点击魔术棒。

Debug右上角Setting。第三个Flash Download,选上Read and Run

Target右上角ARM Compiler。选择第一项:版本6。选择已安装的AC版本,我是如果安装了ac6,没有安装ac5。

八、注意事项

  1. 引脚复用冲突:配置外设时,若提示引脚已被占用,需在引脚图中重新分配未使用的引脚
  2. 时钟树验证:生成代码后,可在 main.c 中查看 SystemClock_Config() 函数,确认时钟配置正确

通过以上步骤,即可完成STM32L476RGT6的基础工程配置,后续可在生成的代码中添加具体业务逻辑。

点个赞支持一下博主吧!

Logo

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

更多推荐