主贴里的例子,生成的代码:FSU_GPIO_Config.c
#include "FSU_GPIO_Config.h"
//* 如果在其它c文件已定义,则去掉本行第一个斜杠,以屏蔽这个函数定义
//STM32F1系列设置GPIO
void SetGPIO(GPIO_TypeDef *Port,
u16 pin,
GPIOSpeed_TypeDef speed,
GPIOMode_TypeDef mode)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = pin;
GPIO_InitStructure.GPIO_Mode = mode;
GPIO_InitStructure.GPIO_Speed = speed;
GPIO_Init(Port, &GPIO_InitStructure);
}
// */
const GPIO_Define_Struct FSU_Gpio[FSU_GPIO_Count] = {
{GPIOA, GPIO_Pin_1 ,GPIO_Speed_10MHz, GPIO_Mode_Out_OD, SDA}, //PA1 定义为SDA
{GPIOB, GPIO_Pin_12,GPIO_Speed_10MHz, GPIO_Mode_Out_OD, SCL}, //PB12定义为SCL
{GPIOC, GPIO_Pin_15,GPIO_Speed_2MHz, GPIO_Mode_Out_PP, Blue_LED}, //PC15定义为Blue_LED
{GPIOD, GPIO_Pin_5 ,GPIO_Speed_2MHz, GPIO_Mode_Out_PP, Green_Red_LED}, //PD5 定义为Green_Red_LED
};
void FSU_GPIO_Configuration(void)//初始化所用到的GPIO
{
u8 i,num=FSU_GPIO_Count;
for(i=0;i<num;i++)
{
if(FSU_Gpio[i].no != i)//检查管脚编号是否正确
{
// DebugPrint("错误的管脚编号!");
while(1)
;
}
else
{
SetGPIO(FSU_Gpio[i].Port,FSU_Gpio[i].pin,FSU_Gpio[i].speed,FSU_Gpio[i].mode);
}
}
//添加其它初始化(如重映射、拉高或拉低某些IO等等)……
}
|