stm32-----01初识GPIO
- GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) -----使用结构体的参数来初始化GPIO口,一般初始化外设都用这个函数完成
- 先定义一个结构体变量
- 给结构体赋值
- 调用这个函数
- GPIO的4个写入函数
- GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);-----把指定端口设置成高电平
- GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);-----把指定端口设置成低电平
- GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);-----第三个参数可以是Bit_RESET(低电平),也可以是Bit_SET(高电平)
- GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);-----可以同时对16个端口进行写入操作
- GPIO的8种工作模式
- GPIO_Mode_AIN 模拟输入-----//一般只在使用ADC的时候,把引脚配置成模拟输入。此时GPIO无效,引脚直接接入内部ADC
- GPIO_Mode_IN_FLOATING 浮空输入-----//可读取引脚电平,若引脚悬空,则电平不确定,所以使用浮空输入时,端口一定接上一个连续的驱动源,不能出现悬空状态
- GPIO_Mode_IPD 下拉输入-----//可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
- GPIO_Mode_IPU 上拉输入-----//可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
- GPIO_Mode_Out_OD 开漏输出-----//可输出引脚电平,高电平为高阻态,没有驱动能力,低电平接VSS
- GPIO_Mode_Out_PP 推挽输出-----//可输出引脚电平,高电平接VDD,低电平接VSS(高低电平都有驱动能力)
- GPIO_Mode_AF_OD 复用开漏输出-----//由片上外设控制,高电平为高阻态,低电平接VSS
- GPIO_Mode_AF_PP 复用推挽输出-----//由片上外设控制,高电平接VDD,低电平接VSS
下面简单解释一下,以上拉输入为例:
当按下按键时,PA0接地,为低电平,松开时,PA0悬空,就会导致电平不确定,所以我们要把PA0设置成上拉输入模式,即IPU,悬空时默认高电平,这样配置完成后,按下按键为低电平,松手为高电平。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)