标签:
一个初始化函数:初始化一个或者多个IO口(同一组)的工作模式、输出类型、速度以及上下拉方式
1 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 2 typedef struct 3 { 4 uint32_t GPIO_Pin//指定要初始化的端口 5 GPIOMode_TypeDef GPIO_Mode;//端口模式 6 GPIOSpeed_TypeDef GPIO_Speed;//速度 7 GPIOOType_TypeDef GPIO_OType; //输出类型 8 GPIOPuPd_TypeDef GPIO_PuPd;//上拉或者下拉 9 }GPIO_InitTypeDef;
0 GPIO_Init函数初始化样例:
1 GPIO_InitTypeDef GPIO_InitStructure; 2 3 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟 4 5 //GPIOF9,F10初始化设置 6 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//LED0和LED1对应IO口 7 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式 8 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz 10 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉 11 GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIOF9,F10
两个读取输入电平函数:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取某个GPIO的输入电平
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读取某组GPIO的输入电平
两个读取输出电平函数:
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取某个GPIO的输出电平
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取某组GPIO的输出电平
四个设置输出电平函数:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);设置某个IO口输出高电平
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);设置某个IO口输出低电平
下边两个不常用
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
使能IO口时钟,调用函数RCC_AHB1PeriphClockCmd();
不同的外设调用的时钟使能函数可能不一样
初始化IO口模式,调用函数GPIO_Init();
操作IO口,输出高低电平。
GPIO_SetBits();
GPIO_ResetBits();
标签:
原文地址:http://www.cnblogs.com/xiedoudou/p/5245841.html