(1)7个寄存器
(2)复用寄存器
1 void LED_Init(void){ //LED灯的接口初始化 2 GPIO_InitTypeDef GPIO_InitStructure; // GPIO初始化结构体 3 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE); //使能APB2总线的GPIO ABC 4 GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0~15或all) 5 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式 6 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz) 7 GPIO_Init(LEDPORT, &GPIO_InitStructure); 8 } 9 10 /********************************************************************************************* 11 * 杜洋工作室 www.DoYoung.net 12 * 洋桃电子 www.DoYoung.net/YT 13 *********************************************************************************************/ 14 15 16 /* 17 选择IO接口工作方式: 18 GPIO_Mode_AIN 模拟输入 19 GPIO_Mode_IN_FLOATING 浮空输入 20 GPIO_Mode_IPD 下拉输入 21 GPIO_Mode_IPU 上拉输入 22 GPIO_Mode_Out_PP 推挽输出 23 GPIO_Mode_Out_OD 开漏输出 24 GPIO_Mode_AF_PP 复用推挽输出 25 GPIO_Mode_AF_OD 复用开漏输出 26 */
1 int main (void){//主程序 2 RCC_Configuration(); //时钟设置 3 LED_Init(); 4 while(1){ 5 6 //方法1: 7 GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1 8 delay_us(50000); //延时1秒 9 GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0 10 delay_us(50000); //延时1秒 11 12 //方法2: 13 // GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //取反LED1 14 // delay_ms(500); //延时1秒 15 16 //方法3: 17 // GPIO_SetBits(LEDPORT,LED1); //LED灯都为高电平(1) 18 // delay_s(1); //延时1秒 19 // GPIO_ResetBits(LEDPORT,LED1); //LED灯都为低电平(0) 20 // delay_s(1); //延时1秒 21 22 //方法4 23 // GPIO_Write(LEDPORT,0x0001); //直接数值操作将变量值写入LED 24 // delay_s(2); //延时1秒 25 // GPIO_Write(LEDPORT,0x0000); //直接数值操作将变量值写入LED 26 // delay_s(2); //延时1秒 27 28 } 29 }