23.9.17 GPIO输入

按键抖动

按键:常见的输入设备,按下导通,松手断开

按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动

传感器模块

传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出

C语言数据类型

C语言宏定义

关键字:#define

用途:用一个字符串代替一个数字,便于理解,防止出错;提取程序中经常出现的参数,便于快速修改

定义宏定义:

        #define ABC 12345

引用宏定义:

        int a = ABC;  //等效于int a = 12345;

C语言typedef

关键字:typedef

用途:将一个比较长的变量类型名换个名字,便于使用

定义typedef

        typedef unsigned char uint8_t;

引用typedef

        uint8_t a;  //等效于unsigned char a;

C语言结构体

关键字:struct

用途:数据打包,不同类型变量的集合

定义结构体变量:

        struct{char x; int y; float z;} StructName;

因为结构体变量类型较长,所以通常用typedef更改变量类型名

引用结构体成员:

        StructName.x = 'A';

        StructName.y = 66;

        StructName.z = 1.23;

  pStructName->x = 'A';  //pStructName为结构体的地址  pStructName->y = 66;

        pStructName->z = 1.23;

typedef struct        //改变结构体名称为GPIO_InitTypeDef
{
    uint16_t GPIO_Pin;
    GPIOSpeed_TypeDef GPIO_Speed;
    GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;

    GPIO_InitTypeDef GPIO_InitStruct;		
//GPIO_InitTypeDef 结构体数据类型
//GPIO_InitStruct 结构体变量名称

	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
//引出结构体成员数据

C语言枚举

关键字:enum

用途:定义一个取值受限制的整型变量,用于限制变量取值范围;宏定义的集合

定义枚举变量:

        enum{FALSE = 0, TRUE = 1} EnumName;

因为枚举变量类型较长,所以通常用typedef更改变量类型名

引用枚举成员:

        EnumName = FALSE;

        EnumName = TRUE;

typedef enum
{ 
  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz, 
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值