STM32F4寄存器初始化系列:GPIO

 1 static void GPIO_Init(void)
 2 {
 3   
 4   //sound
 5   GPIO_Set(GPIOB,PIN4,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
 6   PBout(4)=0; 
 7   
 8   //24路ADC采集
 9   GPIO_Set(GPIOA,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5|PIN6|PIN7,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);    //PA0,模拟输入,下拉
10   GPIO_Set(GPIOB,PIN0|PIN1,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);    //PA0,模拟输入,下拉 
11   GPIO_Set(GPIOC,PIN0|PIN1|PIN2|PIN3|PIN4|PIN5,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);
12   GPIO_Set(GPIOF,PIN3|PIN4|PIN5|PIN6|PIN7|PIN8|PIN9|PIN10,GPIO_MODE_AIN,0,0,GPIO_PUPD_PD);
13   
14   //TFT
15   GPIO_Set(GPIOG,PIN13|PIN14|PIN15,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);//PG13/PG14设置 
16   GPIO_AF_Set(GPIOB,3,5);    //PB3,AF5 
17   GPIO_AF_Set(GPIOB,5,5);    //PB3,AF5 
18   GPIO_Set(GPIOB,PIN3|PIN5,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);//复用功能,下拉输出
19   
20   
21   //触摸
22   GPIO_Set(GPIOE,PIN0,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
23   GPIO_Set(GPIOB,PIN9|PIN7,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
24   GPIO_Set(GPIOB,PIN6,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
25   GPIO_Set(GPIOB,PIN8,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
26   
27   //指南针USART2
28   GPIO_AF_Set(GPIOD,6,7);       //接收
29   GPIO_Set(GPIOD,PIN5,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_50M,GPIO_PUPD_PU);
30   PDout(5)=1;
31   
32   GPIO_Set(GPIOD,PIN6,GPIO_MODE_AF,GPIO_OTYPE_OD,GPIO_SPEED_50M,GPIO_PUPD_PU);
33   
34   //蓝牙USART5
35   GPIO_AF_Set(GPIOD,2,8);    
36   GPIO_AF_Set(GPIOC,12,8);
37   GPIO_Set(GPIOD,PIN2,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
38   GPIO_Set(GPIOC,PIN12,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
39   
40   //蓝牙匹配状态
41   GPIO_Set(GPIOG,PIN5,GPIO_MODE_IN,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_NONE);
42   
43   //蓝牙指令和透传切换  空闲高电平,  发送80ms低脉冲可切换
44   GPIO_Set(GPIOG,PIN6,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_PU);
45   PGout(6)=1;
46   
47   //蓝牙断开匹配  空闲高电平,  发送80ms低脉冲可断开
48   GPIO_Set(GPIOG,PIN7,GPIO_MODE_OUT,GPIO_OTYPE_OD,GPIO_SPEED_2M,GPIO_PUPD_PU);
49   PGout(7)=1;
50   
51   //蓝牙开关   高关闭,低打开
52   GPIO_Set(GPIOA,PIN8,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_2M,GPIO_PUPD_PD);
53   PAout(8)=0;
54   
55   //LED灯
56   GPIO_Set(GPIOF,PIN0,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_2M,GPIO_PUPD_PU);
57   PFout(0)=1;
58   
59   
60   //主电机PWM输出 ************
61   GPIO_AF_Set(GPIOD,12,2);    //PD12,AF2    定时器4
62   GPIO_AF_Set(GPIOD,13,2);    //PD13,AF2 
63   GPIO_AF_Set(GPIOD,14,2);    //PD14,AF2 
64   GPIO_AF_Set(GPIOD,15,2);    //PD15,AF2 
65   GPIO_Set(GPIOD,PIN12|PIN13|PIN14|PIN15,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
66   
67   GPIO_AF_Set(GPIOC,6,3);    //PC6,AF3    定时器8
68   GPIO_AF_Set(GPIOC,7,3);    //PD7,AF3 
69   GPIO_AF_Set(GPIOC,8,3);    //PD8,AF3 
70   GPIO_AF_Set(GPIOC,9,3);    //PD9,AF3 
71   GPIO_Set(GPIOC,PIN6|PIN7|PIN8|PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_NONE);//复用功能
72   
73   //RUN **********
74   GPIO_Set(GPIOG,PIN3,GPIO_MODE_IN,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
75   
76   //KM *******
77   GPIO_Set(GPIOG,PIN9,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
78   
79   //DJ *********
80   GPIO_Set(GPIOD,PIN7,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PD);
81   
82   
83 }
原文地址:https://www.cnblogs.com/penuel/p/11265274.html