经验大分享: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

相关文章
|
5月前
|
C语言 芯片 内存技术
STM32F103标准外设库——寄存器 (二)
STM32F103标准外设库——寄存器 (二)
171 1
STM32F103标准外设库——寄存器 (二)
|
5月前
|
存储
STM32F103标准外设库——GPIO 输入、输出 (五)
STM32F103标准外设库——GPIO 输入、输出 (五)
259 0
STM32F103标准外设库——GPIO 输入、输出 (五)
|
3月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
419 0
|
2月前
|
开发框架 C语言 开发者
STM32寄存器操作、模板构建
【8月更文挑战第23天】本文档介绍STM32中的寄存器操作方法与模板构建技巧。寄存器是STM32控制内外设的核心,通过直接读写特定内存地址来进行操作。以配置GPIO为例,需定位寄存器地址并写入适当值。文档还提供了一个基本的代码模板,包括包含头文件、时钟配置、外设初始化及主函数流程,帮助开发者快速搭建开发框架,并强调了参考手册的重要性以确保正确使用。
|
3月前
|
前端开发 安全
stm32f407探索者开发板(十一)——SystemInit时钟系统初始化剖析
stm32f407探索者开发板(十一)——SystemInit时钟系统初始化剖析
|
3月前
stm32f407探索者开发板(九)——寄存器地址名称映射
stm32f407探索者开发板(九)——寄存器地址名称映射
|
3月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
|
3月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
101 0
|
4月前
|
移动开发
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
103 0
|
12月前
|
芯片
STM32速成笔记(二)—GPIO
本文介绍了STM32的GPIO的配置和使用方法,并且给出了应用实例。此外,针对使用时可能遇到的一些问题给出了解决办法。
335 0
STM32速成笔记(二)—GPIO