GPIO知识点整理

发布者:SereneJourney最新更新时间:2024-08-14 来源: cnblogs关键字:GPIO  STM32  头文件 手机看文章 扫描二维码
随时随地手机看文章

 1 //GPIO的作业,抄两次,注意:本文件是知识点的整理不是可以直接运行的程序

 2 

 3 //STM32必须包含的头文件

 4 #include 'stm32f10x.h'

 5 //GPIO相关头文件

 6 #include 'stm32f10x_gpio.h'

 7 //外部中断相关头文件

 8 #include 'stm32f10x_exti.h'

 9 //内核相关的头文件,NVIC在这里

10 #include 'misc.h'

11 

12 /*GPIO配置使用步骤

13 1.使能,调用函数:

14 RCC_APB2PeriphClockCmd(

15     RCC_APB2Periph_外设名,ENABLE);

16 第一个参数是挂载在APB2总线下面的外设

17 第二个参数是允许(ENABLE)或不允许(DISABLE)

18 

19 2.定义GPIO配置结构体的变量

20 GPIO_InitTypeDef a;

21 //这里若把GPIO改为

22 //NVIC、TIM、I2C等就是

23 //其他的外设配置结构体

24 a.GPIO_Pin = GPIO_Pin_5;//GPIO的5号引脚

25 a.GPIO_Speed = GPIO_Speed_50MHz;//速度

26 a.GPIO_Mode = GPIO_Mode_Out_PP;//工作方式(推挽输出)

27 

28 3.调用函数初始化GPIO

29 GPIO_Init(GPIOB,&a);//这里要传入a的地址

30 

31 4.以上步骤GPIO就配置完成了,下面可以赋值

32 //设置PB5为低电平

33 GPIO_ResetBits(GPIOB,GPIO_Pin_5);

34 //设置PB5为高电平

35 GPIO_SetBits(GPIOB,GPIO_Pin_5);

36 

37 */

38 //实例:点亮红色LED,把PB5设置为低电平

39 RCC_APB2PeriphClockCmd(

40     RCC_APB2Periph_GPIOB,ENABLE);

41 GPIO_InitTypeDef a;

42 a.GPIO_Pin = GPIO_Pin_5;

43 a.GPIO_Speed = GPIO_Speed_50MHz; 

44 a.GPIO_Mode = GPIO_Mode_Out_PP;

45 GPIO_Init(GPIOB,&a);

46 GPIO_ResetBits(GPIOB,GPIO_Pin_5);

47 

48 //按键接到PA0引脚,按键按下灯亮,松开熄灭

49 while(1){

50     //读取引脚的电平

51     int i = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);

52     if(i == 1){

53         //按键按下了

54         GPIO_ResetBits(GPIOB,GPIO_Pin_5);

55     }else{

56         //按键松开

57         GPIO_SetBits(GPIOB,GPIO_Pin_5);

58     }    

59 } 

60 

61 //按键实现每按一次灯的电平状态翻转

62 int pre = 0;//上一次循环按键的电平

63 while(1){ 

64     //读取引脚的电平

65     int states = GPIO_ReadInputDataBit(

66     GPIOA,GPIO_Pin_0);

67     if(states == 0 && pre == 1){

68         //按键刚松开那一刻,states马上变为0,但是

69         //上一次循环中给pre赋的值还是1

70         if(GPIO_ReadInputDataBit(

71         GPIOB,GPIO_Pin_5) == 0){

72             GPIO_SetBits(GPIOB,GPIO_Pin_5);

73         }else{

74             GPIO_ResetBits(GPIOB,GPIO_Pin_5);

75         }

76     }

77     pre = states;//把本次循环按键的电平赋值给上一次

78 } 


关键字:GPIO  STM32  头文件 引用地址:GPIO知识点整理

上一篇:外部中断0(含知识点)
下一篇:通过按键实现LED灯的亮灭(含两种情况)

推荐阅读最新更新时间:2026-03-25 11:54

STM32头文件STM32F10x.h和STM32F10x_lib.h区别
#include stm32f10x_lib.h 是ST公司V2.0的库函数使用的头文件,用MDK3.80A打开。但是,如果你用MDK4.7/MDK5打开,就没法找到了,这也就是为什么,我们老版本的例程,存在高版本的MDK编译的时候,报找不到stm32f10x_lib.h的错误的原因了。而stm32f10x_lib.h里面,经过分析,实际可以用:stm32f10x_map.h和stm32f10x_nvic.h来替代。 #include stm32f10x.h 是ST公司V3.5及以后版本统一使用的库函数头文件了,说白了就是把原来的stm32f10x_lib.h,换成了#include stm32f10x.h ,规范了代码,不需
[单片机]
STM32 HAL库头文件包含关系
如图,从左到右下的顺序写: -------------------------------------------------------------------------------------------------------------------------------- The header of the common HAL driver file(stm32f1xx_hal.h) includes the common configurations for the whole HAL library.It is the only header file that is included in th
[单片机]
<font color='red'>STM32</font> HAL库<font color='red'>头文件</font>包含关系
stm32头文件或C文件功能
stm32f10x_con.h 配置文件:加载哪个外设、使能assert 对参数进行检查,如果使能了assert 需要在main文件中添加 _assert_faild 函数。 使能assert会增大编译出执行文件的大小,调试完后可以将assert 屏蔽。 stm32f10x.h头文件中包含了stm32f10x_conf.h 。 stm32f10x.h 1、对所有的外设的地址进行映射,映射到存储区,即定义某外设结构体变量,因为结构体是连续存储的只要将外设的基地址强制转换为结构体类型的指针,那么该外设的寄存器就可以通过指针进行访问,以GPIO为例: 定义外设的结构体,结构体变量都
[单片机]
STM32关于各种头文件No such file&nb
1.首先,一定要清晰的了解工程设置路径的含义,为什么要设置这个路径而不是别的?出于什么原因设置的?答:工程设置的路径是在搜索*.h文件。 下图是我的工程路径,其中User文件夹是用来存放我自己需要编写或修改的文件。 我们再看来一下User路径下的文件。其中3个.c文件和2个.h文件都是在官方库的STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_ExamplesSDIO路径下复制过来的。 STM32_EVAL存放着从官方库里边复制过来的 stm32_eval.c stm32_eval.h stm32_eval_sdio_sd.c stm32_eval_sdio_sd
[单片机]
<font color='red'>STM32</font>关于各种<font color='red'>头文件</font>No such file&nb
STM32单片机学习】第12章 GPIO—按键轮询
12.1 关于按键 前面控制LED灯是让GPIO输出高低电平,而获取按键则是读取GPIO电平,从而获知用户是否按下按键。 按键监测一般有两种:按键扫描和按键中断。按键扫描是间隔很短时间反复查询GPIO状态,从而得知是否有按键动作,这种方式代码简单,但比较耗资源。按键中断而是通过按键产生中断信号,从而实现按键的检测,这种方式需要使用到中断机制,需要对MCU了解深入一点,效果是最好的。 本节先介绍按键扫描,理解按键的基本原理,下一章再介绍按键中断,同时了解STM32F103的中断使用方法。 按键一般占用一个GPIO口,通过监测该GPIO的电平变化得知按键操作,典型的电路如图 12.1.1 所示。当所需按键比较多时,则可以采用矩阵按键减
[单片机]
STM32GPIO口操作与输出实战指南
一、RCC和GPIO两个外设库常用函数 1.RCC_AHB外设时钟控制 void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState); @ brief 启用或禁用AHB外设时钟。 @ param RCC_AHBPeriph:指定要控制其时钟的AHB外设。 对于 @ STM32互联型设备,此参数可以是以下值的任意组合: • @arg RCC_AHBPeriph_DMA1 • @arg RCC_AHBPeriph_DMA2 • @arg RCC_AHBPeriph_SRAM • @arg RCC_AHBPeriph_FLITF
[单片机]
【<font color='red'>STM32</font>】<font color='red'>GPIO</font>口操作与输出实战指南
STM32 GPIO 多种输入输出模式详解,一篇文章让你轻松掌握!
一、GPIO 的介绍 GPIO(General-Purpose Input/Output)即通用输入输出端口,是微控制器中最基础、最常用的外设之一。对于 STM32 系列微控制器而言,GPIO 是连接芯片与外部世界的桥梁,它可以根据需求配置成不同的输入或输出模式,从而实现与各种外部设备的通信、控制或数据采集。 STM32 的 GPIO 具有以下特点: 可配置性强:支持多种输入输出模式,满足不同场景需求。 驱动能力多样:部分模式可提供较强的电流驱动能力。 复用功能丰富:同一引脚可复用为 USART、SPI、I2C 等通信接口。 支持中断:部分 GPIO 引脚可配置为外部中断源,用于检测电平变化。 二、输入输出模式的种类
[单片机]
<font color='red'>STM32</font> <font color='red'>GPIO</font> 多种输入输出模式详解,一篇文章让你轻松掌握!
STM32中的GPIO笔记
1.GPIO是STM32可控制的引脚,STM32的GPIO被分成很多组,每组有16个引脚。每个GPIO端口包含:2个32位配置寄存器(CRL、CRH),2个32位数据寄存器(IDR、ODR),1个32位复位寄存器(BSRR),1个16位复位寄存器(BRR)和1个32位锁定寄存器。 2.GPIO端口的每个位可以配置成:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 3.复位寄存器(BSRR、BRR)可以对任何GPIO寄存器的独立访问。配置寄存器(CRL和CRH)可以配置GPIO的工作模式和工作速度,每4位控制一个IO,CRL控制低8位,CRH控制高8位。其中MODE位配置速度,CNF
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved