打印
[MM32硬件]

灵动微电子 EVB-L0130 (MM32L0136C7P) 开发板使用指南

[复制链接]
137|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2025-1-6 12:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、硬件介绍
EVB-L0130 属于 MM32 EVBoard 系列开发板,该开发板为基于 Cortex-M0+的开发板,支持 MM32L0130MCU



1、主要特点
EVB-L0130 开发板具有如下特点:
⚫ 支持高达 4KV EFT 抗干扰能力
⚫ 支持 SWD 调试接口
⚫ 目标 MCU USB 接口供电
⚫ 5-按键
⚫ 4-LED
⚫ 2-UART 连接器
⚫ 1-USB 连接器
⚫ 1-8Mbit 的 SPI Flash 存储器
⚫ 1-2048bit 的 I2C 存储器
⚫ 4-引脚功能选择开关
⚫ 1-3.5mm 耳机插座,用于 I2S L/R 音频输出
⚫ 1-无源扬声器
⚫ 1-3 模拟输入电位器
⚫ 1-板载段码 LCD 屏
⚫ 全贴片工艺设计

2、部分硬件介绍















UART 输出连接关系表



注意事项:
由于板载 UART2 接口中的 TXD2、 RXD2 与 CN7 调试接口(JTAG调试接口)中 UART 的 TXD、 RXD 的引脚共用,均为 PA2 和 PA3,在使用过程中,板载 UART2 接口与 CN7 调试接口中的 UART 请勿同时使用。



二、相关资料(相关工具下载等)
1、开发板相关文档、例程等
点此下载

2、Pack包安装
参考此安装方法(需安装" MM32L0xx"Pack包),与 FTHR-G0001 开发类似。

三、代码程序编写(按键点亮板载LED)
1、打开工程代码例程
打开下载的”MM32L0130库函数与例程”文件,以GPIO_LED_Toggle工程为基础,进行相关后续代码的编写。

(…\LibSamples_MM32L0130_V0.10.4\Samples\LibSamples\GPIO\GPIO_LED_Toggle)

示例代码效果为: 串口2输出相关信息 并且 LED1~LED4 进行闪烁。

2、程序代码编写
1.代码主要功能
当按下K1时,LED1点亮,再次按下时,熄灭,LED2 ~ LED4(K2 ~ K4)同理。

同时在串口2中输出(当前按键的状态)

2.按键代码编写
1°初始化按键功能
//在platform.c中编写 按键初始化函数 void PLATFORM_InitKEY(void);

void PLATFORM_InitKEY(void){

    GPIO_InitTypeDef GPIO_InitStruct;

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_2; // K1
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPD;

    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_5; //K4
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
    GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_5;    // K2
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
    GPIO_Init(GPIOD, &GPIO_InitStruct);

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_8;   // K3
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_IPU;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

}


// 注:将 void PLATFORM_InitLED(void) 中 LED初始化(默认点亮) 改为 熄灭状态

void PLATFORM_InitLED(void){
    .....

    .....   

    PLATFORM_LED_Enable(LED1, DISABLE);
    PLATFORM_LED_Enable(LED2, DISABLE);
    PLATFORM_LED_Enable(LED3, DISABLE);
    PLATFORM_LED_Enable(LED4, DISABLE);
}




2°按键控制LED功能函数
//在platform.c中编写 按键控制LED功能函数
// State->按键状态,Count->按键延时计数,InputLevel->当前按键的电平
// ActiveLevel->按键按下时的电平,Name->当前按键的名称
//void KEY_Handler(uint8_t *State, uint8_t *Count, uint8_t InputLevel, uint8_t ActiveLevel, char *Name)

void KEY_Handler(uint8_t *State, uint8_t *Count, uint8_t InputLevel, uint8_t ActiveLevel, char *Name)
{
    if (0 == *State)    //按键当前状态 (按键未按下状态 (State = 0))
    {
        if (InputLevel == ActiveLevel)  //按键按下
        {
            *Count += 1;
            if (*Count >= 5)    //消抖
            {
                *State = 1;
                *Count = 0;
                printf("\r\n%s Pressed", Name);
                PLATFORM_LED_Toggle(*(Name + 1 ) - '1'); // 当前按键所对应的LED (翻转LED状态)     
            }
        }        
    }
    else    //(按键按下状态 (State = 1))
    {
        if (InputLevel != ActiveLevel)  //按键已松开
        {
            *Count += 1;
            if (*Count >= 5)    //消抖
            {
                *State = 0;
                *Count = 0;
                printf("\r\n%s Release", Name); //按键松开
            }
        }
        else    //长按状态
        {
            *Count = 0;
        }
    }
}



3°将按键与对应的LED进行绑定
//在platform.c中 编写 void KEY_LED(void); 将按键与对应的LED进行绑定

void KEY_LED(void)
{
    static uint8_t KeyState[4] =
    {
        0, 0, 0, 0
    };
    static uint8_t KeyCount[4] =
    {
        0, 0, 0, 0
    };

    while (1)
    {
        KEY_Handler(&KeyState[0], &KeyCount[0],
                    GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_2), Bit_SET,   "K1");
        KEY_Handler(&KeyState[1], &KeyCount[1],
                    GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8), Bit_RESET, "K2");
        KEY_Handler(&KeyState[2], &KeyCount[2],
                    GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5), Bit_RESET, "K3");
        KEY_Handler(&KeyState[3], &KeyCount[3],
                    GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_5), Bit_RESET, "K4");
    }
}


3.主函数
//main.c
int main(void)
{
    PLATFORM_Init();

    while (1)
    {

    }
}

//platform.c
void PLATFORM_Init(void)
{
    PLATFORM_InitDelay();

    PLATFORM_InitConsole(115200);

    PLATFORM_InitLED();

    PLATFORM_InitKEY(); // 初始化按键

    PLATFORM_PrintInfo();

    KEY_LED();        // 按键点亮LED
}



四、程序烧录(连接方式)
1、SWD接口连接
SWDIO -> PA13

SWCLK -> PA14

2、串口2连接
RX -> UART2(TXD2) 或 PA2

五、效果演示




按键点亮LED
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_44929802/article/details/144317657

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2042

主题

15990

帖子

15

粉丝