本帖最后由 聪聪哥哥 于 2025-5-15 14:28 编辑
#申请原创# 首先很高兴入围STM32C092的测评活动,和大家分享一下该块开发板的使用过程。一:介绍STM32C092芯片
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口的配置如下:
五:软件代码如下:
void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET);
/*Configure GPIO pin : PA5 */
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PC9 */
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
}
添加LED闪烁的代码如下:
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9);
HAL_Delay(1000);
}
六:实物图片如下所示:
开发板原理图、手册下载如下:
mb2046-bdp.zip
(9.63 MB)
stm32c092rc.pdf
(2.7 MB)
测试代码如下:
LED0.zip
(5.71 MB)
|