STM32C542开发(1)----点亮LED

描述

概述

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

视频教学

[https://www.bilibili.com/video/BV12qVU6EEXk/]

样品申请

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

源码下载

[https://download.csdn.net/download/qq_24312945/92952806]

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32C542CCT6
led

产品特性

STM32C542xx器件属于通用微控制器家族(STM32C5系列),基于高性能Arm® Cortex®-M33 32位RISC内核构建。该系列器件工作频率可达144 MHz。
Cortex®-M33内核集成了单精度浮点运算单元 (FPU),支持所有Arm®单精度数据处理指令和所有数据类型。
Cortex®-M33内核还实现了一套完整的数字信号处理 (DSP) 指令集以及存储器保护单元 (MPU),从而显著提升应用安全性。
这些器件内置高速存储器(高达256 KB Flash存储器和64 KB SRAM)、种类丰富的增强型I/O,以及连接到三条APB总线、三条AHB总线和32位多AHB总线矩阵的多种外设。
该系列器件为内置Flash存储器和SRAM提供多种保护机制:读保护、写保护和隐藏保护区。
器件集成了多种强化安全性的外设:
● HASH硬件加速器
● 真随机数发生器
● AES协处理器
该系列器件提供一个12位ADC、两个DAC通道、两个比较器、一个运算放大器、低功耗RTC、一个32位通用定时器、两个16位电机控制专用PWM定时器、两个16位通用定时器、两个16位基本定时器以及一个16位低功耗定时器。
器件还提供多种标准和高级通信接口,如:
● 一个I²C接口
● 一个I3C接口
● 两个SPI接口,支持复用全双工I2S
● 两个USART接口、两个UART接口以及一个低功耗UART接口
● 两个FDCAN接口
● 一个USB全速接口
器件工作温度范围为-40 °C至+105 °C(结温最高可达+140 °C),电源电压范围为2.7 V至3.6 V。
这些器件均提供一套全面的节能模式,可实现低功耗应用设计。
器件提供从20引脚至64引脚的多种封装选择。

参考程序

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

https://gitee.com/CoreMaker/STM32C542_SENSOR

生成STM32CUBEMX2

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

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

led

在 MCU name 中输入 STM32C542CCT6,选择对应的 STM32C5 芯片型号后,点击 Continue 进入下一步工程配置。

led

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

led

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

led

时钟树配置

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

led

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

led

DEBUG配置

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

led

LED配置

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

led

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

led

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

led

生成项目

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

导入STM32CubeIDE

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

led

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

led

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

led

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

led

主程序

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

led

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);

    }

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分