经验大分享:STM32F4寄存器初始化系列:GPIO

简介: 经验大分享: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 }//代码效果参考:http://www.ezhiqi.com/bx/art_411.html

相关文章
|
2月前
|
C语言 芯片 内存技术
STM32F103标准外设库——寄存器 (二)
STM32F103标准外设库——寄存器 (二)
114 1
STM32F103标准外设库——寄存器 (二)
|
2月前
|
存储
STM32F103标准外设库——GPIO 输入、输出 (五)
STM32F103标准外设库——GPIO 输入、输出 (五)
121 0
STM32F103标准外设库——GPIO 输入、输出 (五)
|
3天前
|
移动开发
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
|
9月前
|
芯片
STM32速成笔记(二)—GPIO
本文介绍了STM32的GPIO的配置和使用方法,并且给出了应用实例。此外,针对使用时可能遇到的一些问题给出了解决办法。
270 0
STM32速成笔记(二)—GPIO
|
2月前
|
芯片
STM32 GPIO工作原理详解
STM32 GPIO工作原理详解
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
No.5 STM32F429IGT6 标准库实战GPIO输出LED灯 点亮闪烁(STM32F429/F767/H743)
|
10月前
|
芯片
STM32F0单片机快速入门五 GPIO中断
STM32F0单片机快速入门五 GPIO中断
No.8 STM32F429IGT6 USART串口初始化结构体 总结
No.8 STM32F429IGT6 USART串口初始化结构体 总结
|
11月前
|
存储 数据采集 芯片
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)
No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)