本帖最后由 sujingliang 于 2025-6-11 21:06 编辑
灵动微电子(MindMotion)的 MM32F0121 MiniBoard-OB 延续了该系列的一贯设计风格,采用沉稳的黑色PCB,集成了丰富的硬件资源,主打高集成度与便捷开发体验。 核心亮点 一体化调试:内置 DAPLink调试器,无需外接工具即可烧录与调试,大幅简化开发流程。 灵活ADC采样:板载可变电位器,通过旋钮即可实时调节分压值,便于快速验证ADC采集功能,是硬件调试的实用设计。 完备外设:集成Flash、EEPROM、用户按键(BUTTON)和LED指示灯,满足基础外设交互需求,降低扩展成本。
在上电启动后,开发板会自动运行示例DEMO程序,全面展示其核心功能和硬件特性。 DEMO程序功能概览 基本信息输出 开发板启动后,串口终端会打印硬件信息(如芯片型号、时钟频率等),便于开发者快速确认系统状态。
存储测试 自动执行 Flash 和 EEPROM 的读写校验,确保存储模块工作正常。
ADC 采样与控制 按键交互:通过 KEY1/KEY2 可启停ADC采样,动态控制数据采集流程。 电位器调节:旋转板载可变电位器,实时改变ADC输入电压,采样值随动更新,直观体现模拟信号采集效果。
PWM 呼吸灯效果 板载的 2颗LED 以渐亮渐暗的呼吸灯模式闪烁,由PWM精准调控,演示定时器与GPIO的协同工作。 该DEMO程序完整驱动了所有板载资源,既是对开发板硬件功能的全面自检,也为开发者提供了开箱即用的参考实现。通过交互式操作(按键、电位器)与视觉反馈(LED、串口输出),生动呈现了核心外设的应用场景,大幅降低后续开发的学习门槛。
一、资源下载及环境准备
1、访问灵动微官网可以获得完整的资料
1)开发板主控为MM32F0120:主控资料
在产品手册中下载:MM32F0120 产品手册(中文版)、MM32F0120 用户手册(中文版)
在工具和软件中下载:MM32F0120 库函数与例程、KEIL PACK
2)开发板主页:MiniBoard-OB (MM32F0121C6P)
主要下载:Mini-F0121-OB (LQFP48) 原理图
2、环境准备
1)安装KEIL PACK 中的MindMotion.MM32F0120_DFP.0.9.3.pack
2)解压MM32F0120 库函数与例程
二、LED双闪
以LibSamples_MM32F0120_V1.13.4\Samples\LibSamples\GPIO\GPIO_LED_Toggle为例
1、初始化LED
设置PB14、PB15为高速、输出
void GPIO_Configure(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
GPIO_StructInit(&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15 ;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_WriteBit(GPIOB, GPIO_Pin_14 | GPIO_Pin_15, Bit_SET);
}
2、LED翻转函数
void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn)
{
if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn))
{
GPIO_SetBits(GPIOn, PINn);
}
else
{
GPIO_ResetBits(GPIOn, PINn);
}
}
3、双闪
void GPIO_LED_Toggle_Sample(void)
{
printf("\r\nTest %s", __FUNCTION__);
GPIO_Configure();
while (1)
{
GPIO_IO_Toggle(GPIOB, GPIO_Pin_14);
GPIO_IO_Toggle(GPIOB, GPIO_Pin_15);
PLATFORM_DelayMS(100);
}
}
三、运行效果
四、PLATFORM函数实现双闪
void GPIO_LED_Toggle_Sample(void)
{
printf("\r\nTest %s", __FUNCTION__);
//GPIO_Configure();
while (1)
{
//GPIO_IO_Toggle(GPIOB, GPIO_Pin_14);
//GPIO_IO_Toggle(GPIOB, GPIO_Pin_15);
PLATFORM_LED_Toggle(LED1);
PLATFORM_LED_Toggle(LED2);
PLATFORM_DelayMS(100);
}
}
因为在main函数中调用了PLATFORM_Init,已经初始化了LED1、LED2,
直接调用用platform.c中PLATFORM_LED_Toggle函数就可以实现LED翻转。
|