sujingliang · 2 天前

【Mini-F5375-OB开发板评测】1、platform适应性修改

感谢灵动微电子和极术社区提供的评测机会。

收到Mini-F5375-OB开发板后,经过初步测试发现部分基础例程无法正常运行。经分析原理图及SDK库文件,发现当前LibSamples_MM32F5370_V0.10.3库是基于EV Board (MM32F5375G8PV)设计的。若要在MiniBoard (MM32F5375G7PV)上正常运行,需针对开发板配置对platform.c文件进行适配性修改。

一、LED1、LED2配置修改

修改目的:将原配置的4个LED修改为此开发板上的2个LED

image.png
LED1:PB15
LED2:PB14
LED初始化函数,(注释掉的部分为原来的内容,下同)

void PLATFORM_InitLED(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;

    //RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

    GPIO_StructInit(&GPIO_InitStruct);
    //GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
    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);

    PLATFORM_LED_Enable(LED1, ENABLE);
    PLATFORM_LED_Enable(LED2, ENABLE);
/*  PLATFORM_LED_Enable(LED3, ENABLE);
    PLATFORM_LED_Enable(LED4, ENABLE);
    */
}

LED翻转函数

void PLATFORM_LED_Toggle(LEDn_TypeDef LEDn)
{
    switch (LEDn)
    {
        case LED1:
            GPIO_WriteBit(GPIOB, GPIO_Pin_15, GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_15) ? Bit_RESET : Bit_SET);
            break;

        case LED2:
            GPIO_WriteBit(GPIOB, GPIO_Pin_14, GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_14) ? Bit_RESET : Bit_SET);
            break;
/*
        case LED3:
            GPIO_WriteBit(GPIOE, GPIO_Pin_4, GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_4) ? Bit_RESET : Bit_SET);
            break;

        case LED4:
            GPIO_WriteBit(GPIOE, GPIO_Pin_5, GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_5) ? Bit_RESET : Bit_SET);
            break;
*/
        default:
            break;
    }
}
void PLATFORM_LED_Enable(LEDn_TypeDef LEDn, FunctionalState State)
{
    switch (LEDn)
    {
        case LED1:
            GPIO_WriteBit(GPIOB, GPIO_Pin_15, (ENABLE == State) ? Bit_RESET : Bit_SET);
            break;

        case LED2:
            GPIO_WriteBit(GPIOB, GPIO_Pin_14, (ENABLE == State) ? Bit_RESET : Bit_SET);
            break;

  /*      case LED3:
            GPIO_WriteBit(GPIOE, GPIO_Pin_4, (ENABLE == State) ? Bit_RESET : Bit_SET);
            break;

        case LED4:
            GPIO_WriteBit(GPIOE, GPIO_Pin_5, (ENABLE == State) ? Bit_RESET : Bit_SET);
            break;
    */
        default:
            break;
    }
}

二、调试串口配置修改

修改目的:调试串口由UART1改为UART3

调试串口用的是UART3,TX:PC10,RX:PC11
image.png

image.png

串口初始化:

void PLATFORM_InitConsole(uint32_t Baudrate)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    USART_InitTypeDef USART_InitStruct;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);

    USART_StructInit(&USART_InitStruct);
    USART_InitStruct.USART_BaudRate   = Baudrate;
    USART_InitStruct.USART_StopBits   = USART_StopBits_1;
    USART_InitStruct.USART_Parity     = USART_Parity_No;
    USART_InitStruct.USART_Mode       = USART_Mode_Rx | USART_Mode_Tx;
    USART_Init(USART3, &USART_InitStruct);

    //RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
    
    //GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_7);
        GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_7);

    GPIO_StructInit(&GPIO_InitStruct);
 //   GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_6;
      GPIO_InitStruct.GPIO_Pin   = GPIO_Pin_10;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_High;
    GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOC, &GPIO_InitStruct);

    //USART_Cmd(USART1, ENABLE);
        USART_Cmd(USART3, ENABLE);
}

printf重定向修改为USART3

int fputc(int ch, FILE *f)
{
    USART_SendData(USART3, (uint8_t)ch);

    while (RESET == USART_GetFlagStatus(USART3, USART_FLAG_TC))
    {
    }

    return (ch);
}

三、平台打印信息修改

修改目的:修改平台打印信息为修改为MM32F5375G7PV

void PLATFORM_PrintInfo(void)
{
    RCC_ClocksTypeDef RCC_Clocks;

    printf("\r\nBOARD : EVB-F5375");
    printf("\r\nMCU : MM32F5375G7PV");

就是把原来的MM32F5375G8PV,修改为MM32F5375G7PV

四、keil设备修改

Options->Device,修改MM32F5375G8PV为MM32F5375G7PV
image.png

经过以上简单改动,完成了适应性修改,为以后调试程序铺平了道路。

推荐阅读
关注数
0
文章数
6
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息