STM32学习-20240812-GPIO口输入-按键和传感器输入

一、传感器模块

1.其中AO为模拟信号输出,DO为数字信号输出,此外还需要额外的供电模块。DO输出是通过比较器实现的。

2.从左到右为光敏电阻传感器、热敏电阻传感器、对射式红外传感器、反射式红外传感器,以上传感器都是利用其接受的相应的信号越强,其电阻值越小来实现对应的参数监测。

3.DO口可以直接接一个IO口即可

二、按键模块

案件模块需要一定的消隐时间,防止单片机啊多次误触

按键和传感器的接法,按键一般使用下接方式。其中左边两种接法要求IO口为上拉输入模式,右边可以为浮空输入模式。

三、C语言输入类型

1.在STM32中使用stdint关键字进行参数类型的定义。

2.c语言的宏定义,可使得引脚定义中更加方便快捷

3.C语言typedef

4.C语言结构体,组合不同数据类型的数组

使用typedef给结构体命名

typedef struct
{
  uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
                                      This parameter can be any value of @ref GPIO_pins_define */

  GPIOSpeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins.
                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */

  GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
                                      This parameter can be a value of @ref GPIOMode_TypeDef */
}GPIO_InitTypeDef;

5.C语言的枚举,也是一种变量类型,可用typedef改变名字

使用typedef可以给枚举命名:

typedef enum

  GPIO_Speed_10MHz = 1,
  GPIO_Speed_2MHz, 
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;

6.强转可以在变量前面加上(类型名称)

四、IO口读取输入

1.uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);用于指定某一个端口,返回值为char型变量,用于读取确定端口。

2.uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读取整个输入输出寄存器,只有一个参数用于指定具体外设,如GPIOA。

3.uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);用于读取输出数据寄存器的某一位,一般用于输出模式下,用来确定自己输出的具体值。

4.uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取整个输出寄存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值