【前言】
我在前面发表了MM32F5375的开发环境的创建:https://forum.eepw.com.cn/thread/389901/1
接下来我将逐一介绍如何使用他的外设,并制作一些有意思的小作品。
【原理图】
在点灯之前,我们首先找到原理图,来查看我们开发板上的原理图接在哪一个GPIO上面,是高电平点亮还是低电平来点亮。
原理图的链接:https://www.mindmotion.com.cn/download/support/Mini-F5375-OB_SCH.pdf
在原理图中,我们找到LED:
看到两个LED灯是接到了PB15与PB14上面,低电平点亮。
【代码编写】
1、编写初始两个IO的配置函数:
void GPIO_Configure(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //开启GPIOB时钟 GPIO_StructInit(&GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14; //指定初始化引脚 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); //设置引脚电平为高电平 即关断LED }
代码释义见注释。
2、编写翻转函数
void GPIO_IO_Toggle(GPIO_TypeDef *GPIOn, uint16_t PINn) { if (Bit_RESET == GPIO_ReadOutputDataBit(GPIOn, PINn)) { GPIO_SetBits(GPIOn, PINn); //设置引脚电平为高电平 即关断LED } else { GPIO_ResetBits(GPIOn, PINn); //设置引脚电平为低电平 即打开LED } }
代码释义见注释。
3、编写测试函数:
void GPIO_LED_Toggle_Sample(void) { GPIO_Configure(); //配置IO while (1) { //翻转LED GPIO_IO_Toggle(GPIOB, GPIO_Pin_14); GPIO_IO_Toggle(GPIOB, GPIO_Pin_15); //延时 PLATFORM_DelayMS(100); } }
4、将文件加入makefile,参与编译:
# 向 C_SOURCES 中添加需要编译的源文件C_SOURCES += $(wildcard $(Core_DIR)/app/*.c) # 向 C_INCLUDES 中添加头文件路径C_INCLUDES += -I$(Core_DIR)/app
【下载】
执行make run可以直接将代码编译并下载到开发板上,效果就是可以看两个LED周期翻转。