感谢灵动微电子和极术社区提供的评测机会。
收到Mini-F5375-OB开发板后,经过初步测试发现部分基础例程无法正常运行。经分析原理图及SDK库文件,发现当前LibSamples_MM32F5370_V0.10.3库是基于EV Board (MM32F5375G8PV)设计的。若要在MiniBoard (MM32F5375G7PV)上正常运行,需针对开发板配置对platform.c文件进行适配性修改。
一、LED1、LED2配置修改
修改目的:将原配置的4个LED修改为此开发板上的2个LED
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
串口初始化:
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
经过以上简单改动,完成了适应性修改,为以后调试程序铺平了道路。