news 2026/6/18 3:10:27

[STM32C0] 【STM32C092RC 测评】+ 01开箱、资料准备、点灯

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32C0] 【STM32C092RC 测评】+ 01开箱、资料准备、点灯

STM32C091xB/XC STM32C092xB/XC主流微控制器基于工作频率可达48 MHz的高性能Am®conex-MO+ 32位RISC内核。该系列微控制器具有高集成度,适合消费、工业和家电领域的各类应用,也能充分满足物联网(10T)解决方案的需求。
这些器件集成了内存保护单元 (MPU)、高速嵌入式存储器(高达36 KB的SRAM和高达256 KB的Flash程序存储器,后者带读写保护功能、专有代码保护功能和安全区域)、DMA、丰富的系统功能、增强型110与外设。器件提供了多种标准通信接口(2个12C、2个SPI1个PS、1个FDCAN和4个USART)、1个具有多达19通道的12位ADC(2.5MSPS)、1个低功耗RTC、1个高级控制PWM定时器、5个通用16位定时器、1个32位通用定时器、2个
看门狗定时器和1个SysTick定时器。
它们可在-40 ℃至125℃的环境温度和2.0V至3.6V的电源电压下工作。经过优化的动态功耗与省电模式相结合,轻松打造低功耗应用设计。
这些器件提供20引脚至64引脚的不同封装规格。
二:产品的功能特点:
包含意法半导体先进专利技术
内核:Arm@32位Cortex@-M0+ CPU,频率可达48 MHZ工作温度:-40“C至85°C/105°C/125C
存储器:1:高达256 KB的Flash存储器,带保护功能和安全区域 2:高达36 KB的SRAM,支持硬件奇偶校验
CRC计算单元
复位和电源管理:1:电压范围:2.0 V至3.6 V;2:上电/掉电复位(POR/PDR);3:可编程欠压复位(BOR);4:低功耗模式:睡眠、停止、待机、关断
时钟管理:1:4 MHZ至48 MHZ晶振 ;2:带校准功能的32 kHz晶振3 :内置48 MHZ RC振荡器(±1%);4:内置32 kHZ RC振荡器(±5%)
高速I/0端口多达61个:1:所有端口均可映射到外部中断向量 ;2:所有均为5 V耐压
支持灵活映射的7通道DMA控制器
12位0.4 μS ADC(多达19个外部通道):转换范围:0 V到3.6 V
10个定时器:1个用于高级电机控制的16位定时器、1个32位定时0器、5个16位通用定时器、2个看门狗定时器和1个SysTick定时器
支持警报功能的日历RTC
通信接口:
2个I2C总线接口,:通过额外的恒流源支持极速模式(1Mbit/s),其中一个支持SMBUS/PMBuS™以及从停止模式唤醒功能4个USART,支持主/从同步SPI;其中1个支持IS07816接口、LIN、IrDA功能、自动波特率检测和唤醒功能2个SPI(24 Mbit/s),具有4至16位可编程位帧,其中一个与12S接口复用;通过USART提供4个额外SPI
1个FDCAN控制器(仅限STM32C092xx)
开发支持:串行线调试(SWD)
96位唯一ID码
所有封装均符合ECOPACK2标准三:开箱图片如下所示:



四:开发工具准备:
这里我使用的是keil5.38a版本进行软件代码的开发
一:keil5 mdk下载连接:https://www.keil.com/download/product/

1.1 选择 MDK-arm ,这里可以根据自身的需求,下载所需要的版本



这里我们随便填写以下信息就可以,然后再弹出的界面,直接下载keil5的安装包就可以,现在目前最新的版本是5.40以上,但是我这边并没有下载最新的版本,要不然频发的更新太麻烦了。
二:STM32cube Mx软件的安装过程
STM32CubeMX作为一种图形化工具,可以用于配置任何STM32器件。这款简单易用的图形用户界面为Cortex-M内核生成初始化C代码,并为Cortex-A内核生成Linux器件树。
第一步包括选择与所需外设集匹配的意法半导体STM32微控制器、微处理器或开发平台,同时包括在特定开发平台上运行的示例。
对于微处理器,第二步允许配置GPIO和设置整个系统的时钟,并交互地将外设分配给Arm® Cortex®-M或Cortex®-A内核。特定实用工具(如DDR配置和微调)增强了STM32微处理器的易用性。对于Cortex®-M内核,配置包含了额外步骤,与微控制器的十分相似。
对于微控制器和微处理器Arm® Cortex®-M,第二步为通过引脚分配冲突处理器、时钟树设置助手、功耗计算器,以及用于配置外设(如GPIO或USART)和中间件栈(如USB或TCP/IP)的实用工具来配置各个必需的嵌入式软件。
借助增强型STM32Cube扩展包,可扩展默认软件和中间件栈。可直接通过STM32CubeMX中可用的专用包管理器,直接下载意法半导体或意法半导体合作伙伴提供的软件包,其他软件包可以从本地驱动器进行安装。
此外,STM32CubeMX中的独特实用程序STM32PackCreator可帮助开发人员构建自己的增强型STM32Cube扩展包。
最终,用户可以生成与所选配置匹配的软件包。这一步提供Arm® Cortex®-M初始化C代码(可随时用于多个开发环境),或面向Arm® Cortex®-A的部分Linux®设备树。
STM32CubeMX在STM32Cube中交付。
我们需要再STM32 的生态社区下载软件

https://www.st.com.cn/zh/development-tools/stm32cubemx.html#st-get-software




三:STM32CubeProgrammer 软件的使用
STM32CubeProgrammer (STM32CubeProg) 是一款用于编程STM32产品的全功能多操作系统软件工具
它提供了一个易用高效的环境,通过调试接口(JTAG和SWD)和自举程序接口(UART、USB DFU、I2C、SPI和CAN)读取、写入及验证器件内存。
STM32CubeProgrammer的功能广泛,可以对STM32内部存储器(如Flash、RAM和OTP)以及外部存储器进行编程。
STM32CubeProgrammer还允许选择编程和上传、编程内容验证以及通过脚本自动编程。
STM32CubeProgrammer提供了GUI(图形用户界面)和CLI(命令行界面)版本。



四:点亮板载的LED灯
查看板载的LED引脚接口


使用PA5和PC9引脚,这里我们在cubeMX 软件中进行配置
时钟树的配置:


GPIO口的配置如下:


五:软件代码如下:

复制

  1. void MX_GPIO_Init(void)
  2. {
  3. GPIO_InitTypeDef GPIO_InitStruct = {0};
  4. /* GPIO Ports Clock Enable */
  5. __HAL_RCC_GPIOA_CLK_ENABLE();
  6. __HAL_RCC_GPIOC_CLK_ENABLE();
  7. /*Configure GPIO pin Output Level */
  8. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
  9. /*Configure GPIO pin Output Level */
  10. HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET);
  11. /*Configure GPIO pin : PA5 */
  12. GPIO_InitStruct.Pin = GPIO_PIN_5;
  13. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  14. GPIO_InitStruct.Pull = GPIO_PULLUP;
  15. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  16. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  17. /*Configure GPIO pin : PC9 */
  18. GPIO_InitStruct.Pin = GPIO_PIN_9;
  19. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  20. GPIO_InitStruct.Pull = GPIO_PULLUP;
  21. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  22. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  23. }


添加LED闪烁的代码如下:

复制

  1. while (1)
  2. {
  3. /* USER CODE END WHILE */
  4. /* USER CODE BEGIN 3 */
  5. HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  6. HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9);
  7. HAL_Delay(1000);
  8. }


六:实物图片如下所示:



开发板原理图、手册下载如下:

mb2046-bdp.zip(9.63 MB, 下载次数: 4)

stm32c092rc.pdf(2.7 MB, 下载次数: 4)
测试代码如下:

LED0.zip(5.71 MB, 下载次数: 2)


---------------------
作者:聪聪哥哥
链接:https://bbs.21ic.com/icview-3453796-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:28:25

简单理解:(FlagStatus)0 和RESET有什么区别?

核心结论:能直接写 RESET,且更推荐这么写! 代码里写 (FlagStatus)0 不是 “必须”,而是 “可选写法”,甚至是不够规范的写法。之所以有人会写 (FlagStatus)0 而非直接写 RESET,主要是 3 个常见原因&#xf…

作者头像 李华
网站建设 2026/5/30 11:38:24

开源最强目标检测模型YOLOv8上手实践(含Git下载命令)

YOLOv8实战指南:从零搭建高效目标检测系统 在智能摄像头遍地开花的今天,如何让设备“看懂”画面中的行人、车辆和安全隐患?这背后离不开一个关键技术——目标检测。而在这条技术赛道上,YOLOv8 正以惊人的速度成为开发者首选。 它不…

作者头像 李华
网站建设 2026/6/10 1:45:59

孤能子视角:“融智学“理论分析,提出建议

我的问题:17. 每一个理论都有存在的价值,况且它发展了三十年,本身也是为数字时代而设计。我只是建议它适可而止,不要无限循环,标注所有知识,那必然导致失败。 18. 再有数字时代是关系性时代,人类各文明交融…

作者头像 李华
网站建设 2026/6/10 18:25:08

社群裂变活动:邀请好友注册送免费Token额度

社群裂变活动:邀请好友注册送免费Token额度 在人工智能技术加速落地的今天,越来越多开发者希望快速验证一个模型想法——但往往还没开始写代码,就被环境配置、依赖冲突和算力不足卡住了。尤其是初学者,在安装 TensorFlow 时遇到 C…

作者头像 李华
网站建设 2026/6/16 14:23:44

别再手动写日志了!C# 12拦截器让一切自动完成,速度提升10倍

第一章:C# 12拦截器与日志自动化的革命C# 12 引入的拦截器功能标志着编译时AOP(面向切面编程)的重大突破,开发者现在可以在不依赖运行时反射或第三方库的情况下,实现方法调用的拦截与增强。这一特性为日志自动化提供了…

作者头像 李华
网站建设 2026/5/28 13:20:49

C#内联数组性能提升实战(3大案例教你避免GC压力)

第一章:C#内联数组性能提升编程概述 在高性能计算和底层系统开发中,内存访问效率直接影响程序的整体表现。C# 12 引入的内联数组(Inline Arrays)特性为开发者提供了一种在栈上连续存储固定数量元素的能力,从而减少堆分…

作者头像 李华