概述

STM32C5A3R & SENSOR是一款基于STM32C5系列微控制器的评估套件。该微控制器采用了40nm工艺制造,具有更快的FLASH访问,更高的性能以及更低的功耗。此外,该套件具有丰富的接口和外设,以及传感器(SENSOR)系列连接器接口,为开发者提供了便捷且灵活的开发环境。
这里通过配置LED输出进行简单测试。
需要样片的可以加群申请:925643491 / 615061293 。

视频教学

bilibili.com/video/BV1SEKM69Eu4/

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

源码下载

https://download.csdn.net/download/qq_24312945/93188776

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32C5A3RGT6
在这里插入图片描述

产品特性

STM32C5A3xxx 系列器件是基于高性能 Arm® Cortex®-M33 32 位 RISC 内核的通用微控制器系列(STM32C5 系列)。它们的运行频率高达 144 MHz。
Cortex® - M33 内核具有一个单精度浮点单元 (FPU),支持所有 Arm®单精度数据处理指令和所有数据类型。
Cortex® - M33 内核还实现了一整套数字信号处理 (DSP) 指令和内存保护单元 (MPU),从而增强了应用程序的安全性。
这些设备嵌入了高速存储器(高达 1 Mbyte 闪存和 128 Kbyte SRAM)、一个 Octo-SPI 存储器接口以及一系列增强型 I/O、外设,这些外设连接到三个 APB 总线、三个 AHB 总线和一个 32 位多 AHB 总线矩阵。
这些设备具有多种针对嵌入式闪存和 SRAM 的保护机制:读取保护、写入保护和隐藏保护区域。
这些设备内置多个外围设备,以增强安全性:
● 哈希硬件加速器
● 硬件唯一密钥 (HUK)
● 真随机数生成器
● 两个AES协处理器,其中一个具有DPA抗性
● 公钥加速器 (PKA),抗 DPA 攻击
这些设备提供三个 12 位 ADC、一个 DAC 通道、一个比较器、一个低功耗 RTC、四个 32 位通用定时器、两个专用于电机控制的 16 位 PWM 定时器、四个 16 位通用定时器、两个 16 位基本定时器和一个 16 位低功耗定时器。
这些设备还配备了标准和高级通信接口,例如:
● 两个 I2C
● 一个 I3C
● 三个带复用全双工 I2S 的 SPI
● 四个 USART、三个 UART 和一个低功耗 UART
● 两个 FDCAN
● 一个 USB 全速接口
● 一个以太网 MAC 接口和一对以太网接口
这些器件可在 -40 至 +125 °C(结温 +140 °C)的温度范围内工作,电源电压为 2.7 至 3.6 V。
一套全面的节能模式可用于设计低功耗应用。
这些器件提供 32 至 144 引脚的多种封装规格。

参考程序

https://github.com/CoreMaker-lab/STM32C5A3R_SENSOR

https://gitee.com/CoreMaker/STM32C5A3R_SENSOR

生成STM32CUBEMX2

用STM32CUBEMX2生成例程,这里使用MCU为STM32C5A3RGT6。

  1. 打开 STM32CubeMX2 后,进入 Home 首页
  2. 点击 MCU,基于具体芯片型号创建工程

在这里插入图片描述
在 MCU name 中输入 STM32C5A3RGT6,选择对应的 STM32C5 芯片型号后,点击 Continue 进入下一步工程配置。

在这里插入图片描述

填写工程名称和保存路径后,点击 “Automatically Download, Install & Create Project”,STM32CubeMX2 会自动下载所需软件包并创建工程。

在这里插入图片描述

STM32CubeMX2 提示 Project Successfully Created 后,点击右下角 “Launch Project” 进入工程配置界面。

在这里插入图片描述

时钟树配置

  1. 点击左侧外设配置入口,进入 Peripherals 配置界面
  2. 在 System 分类下选择 RCC,用于配置系统时钟源
  3. HSE Source 选择 Crystal/ceramic resonator,启用外部高速晶振
  4. LSE Source 选择 Crystal/ceramic resonator,启用外部低速晶振

在这里插入图片描述

  1. 点击左侧 Clock 图标,进入时钟树配置界面
  2. HSE OSC:设置外部高速晶振频率,这里配置为 24 MHz
  3. PSI Mux / PLL:选择并配置 PLL 时钟源,用于倍频生成系统主频
  4. System Mux:选择系统时钟来源,当前系统主频配置为 144 MHz

在这里插入图片描述

DEBUG配置

在 Peripherals 中选择 Cortex → DEBUG,将 Mode 配置为 Single-wire trace asynchronous,用于后续程序下载、在线调试和 Trace 调试功能。

在这里插入图片描述

LED配置

查看原理图,对应LED分别为PA8,PB14,PB15。

在这里插入图片描述

  1. 点击左侧 Pinout 图标,进入芯片引脚配置界面
  2. 根据 LED 原理图,选择 PA8、PB14、PB15 三个引脚作为 GPIO 输出
  3. 在右侧 Pin signals 中选择 GPIO,并确认引脚状态为 Configured

在这里插入图片描述

  1. 进入 Peripherals 外设配置页面,选择 I/O → GPIO
  2. 分别展开 PA8、PB14、PB15 三个 GPIO 引脚配置项
  3. 为三个 LED 引脚添加 SW Label,并将 Mode 设置为 Output

在这里插入图片描述

生成项目

  1. 修改配置后,左下角会提示 Click to save,需要先保存当前工程配置
  2. 点击左侧 Project settings,进入工程生成设置页面
  3. 在 IDE Project Generation 中选择工程格式和工具链,本例选择 CMake + GCC,然后点击 Generate IDE project 生成工程
    在这里插入图片描述

导入STM32CubeIDE

  1. 打开 STM32CubeIDE,点击菜单栏 File
  2. 选择 Import…,准备导入 STM32CubeMX2 生成的 CMake 工程

在这里插入图片描述

  1. 在 Import 窗口中展开 Import STM32 Project
  2. 选择 STM32 CMake Project
  3. 点击 Next,进入 CMake 工程路径选择页面

在这里插入图片描述

  1. Project name:填写导入到 STM32CubeIDE 中显示的工程名称
  2. Source directory:选择 STM32CubeMX2 生成的 CMake 工程目录
  3. 点击 Next,继续完成工程导入

在这里插入图片描述

  1. Toolchain:选择 MCU ARM GCC,表示使用 ARM GCC 工具链进行编译
  2. MCU:确认芯片型号为 STM32C5A3RGTx,与前面 STM32CubeMX2 中选择的 MCU 保持一致
  3. CPU/Core:确认内核为 Cortex-M33,Core 为 0
  4. 点击 Finish,完成 CMake 工程导入

在这里插入图片描述

主程序

  1. 在 Project Explorer 中打开 main.c 文件
  2. 在 while(1) 主循环中添加 LED 控制代码
  3. 使用 HAL_GPIO_TogglePin() 或 HAL_GPIO_WritePin() 实现 LED 闪烁
  4. 底部 Console 显示 Download verified successfully,说明程序已成功下载到开发板

在这里插入图片描述

    while (1) {

    	HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_14);
    	HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_15);
    	HAL_GPIO_TogglePin(HAL_GPIOA, HAL_GPIO_PIN_8);
    	HAL_Delay(500);
    	HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_14);
    	HAL_GPIO_TogglePin(HAL_GPIOB, HAL_GPIO_PIN_15);
    	HAL_GPIO_TogglePin(HAL_GPIOA, HAL_GPIO_PIN_8);
    	HAL_Delay(500);

        HAL_GPIO_WritePin(LED1_PORT, LED1_PIN, HAL_GPIO_PIN_SET);
        HAL_GPIO_WritePin(LED2_PORT, LED2_PIN, HAL_GPIO_PIN_SET);
        HAL_GPIO_WritePin(LED3_PORT, LED3_PIN, HAL_GPIO_PIN_SET);
        HAL_Delay(500);

        HAL_GPIO_WritePin(LED1_PORT, LED1_PIN, HAL_GPIO_PIN_RESET);
        HAL_GPIO_WritePin(LED2_PORT, LED2_PIN, HAL_GPIO_PIN_RESET);
        HAL_GPIO_WritePin(LED3_PORT, LED3_PIN, HAL_GPIO_PIN_RESET);
        HAL_Delay(500);

    }
Logo

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

更多推荐