其他分享
首页 > 其他分享> > STM32四:GPIO

STM32四:GPIO

作者:互联网

一.概述

1.GPIO基本概念

2.GPIO基本结构

3.八种模式概述

二.八种模式详解

1.浮空输入

2.上拉输入

3.下拉输入

4.模拟输入

5.开漏输出

6.开漏复用输出

7.推挽输出

8.推挽复用输出

三.相关寄存器

1.介绍

(1)7个寄存器

(2)复用寄存器

2.寄存器地址映射

四.程序

1.点亮LED灯

 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 }

 

标签:LED1,输出,LEDPORT,STM32,Mode,GPIO,输入
来源: https://www.cnblogs.com/zhihaospace/p/15873263.html