IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32 GPIO -> 正文阅读

[嵌入式]STM32 GPIO

API

void HAL_GPIO_Init(GPIO_TypeDef ?*GPIOx, GPIO_InitTypeDef *GPIO_Init)

设置GPIO模式,这个就是最重要的API了,

GPIO 具有以下模式

#define ?GPIO_MODE_INPUT? ????????????????????????????????浮空输入模式,既不上拉也不下拉.该状态下IO功耗为理论值0.
#define ?GPIO_MODE_OUTPUT_PP? ? ? ? ? ? ? ? ? ? ??推挽输出模式,IO可以输出大电流的高低电平.


#define ?GPIO_MODE_OUTPUT_OD? ? ? ? ? ? ? ? ? ? ?开漏输出模式,IO输出0接GND,IO输出1,浮空.
#define ?GPIO_MODE_AF_PP ? ? ? ? ? ? ? ? ? ? ? ?????????复用功能的推挽输出,比如将I2C的输出设置为推挽输出.
#define ?GPIO_MODE_AF_OD ? ? ? ? ? ? ? ? ? ? ? ?????????复用功能的开漏输出,比如将I2C的输出设置为开漏输出.


#define ?GPIO_MODE_AF_INPUT ? ? ? ? ? ? ? ? ? ?等价于浮空输入模式

#define ?GPIO_MODE_ANALOG ? ? ? ? ? ? ? ? ? ? ? 模拟输入,作为一个电压数值输入到MCU,而不是高低电平状态,关闭上下拉电阻,该状态下IO功耗为理论值0.输出和输入的寄存器被置0.

#define ?GPIO_MODE_IT_RISING? ? ? ? ? ? ? ? ? ? ? 设置为输入上升沿产生中断.
#define ?GPIO_MODE_IT_FALLING? ? ? ? ? ? ? ? ? ? 设置为输入下降沿产生中断.
#define ?GPIO_MODE_IT_RISING_FALLING ? ? ?设置为输入下降沿或上升沿产生中断.

#define ?GPIO_MODE_EVT_RISING? ? ? ? ? ? ? ?设置为输入上升沿产生"事件".在这里事件可以唤醒休眠状态(WFE)的MCU,但是不会产生"中断事件",也就是说不会执行中断处理函数,也就说不需要清除外设中断挂起位或 NVIC. 手册写的"事件"会生成硬件脉冲,知道的信息是这个脉冲可以唤醒MCU, 这个脉冲如何捕获还有待实验.应该可以先让CPU进入WFI,然后使用GPIO"事件"来启动AD转换.这样可以达到PPI的效果.也就是不需要唤醒MCU,尽可能的降低功耗与MCU的工作量.

?补充:WFI和WFE,"事件"和"中断"都可以唤醒WFE状态下的MCU,只有"中断"可以唤醒WFI状态下的MCU.

#define ?GPIO_MODE_EVT_FALLING ? ? ? ? ? ? ??设置为输入下降沿产生"事件"


#define ?GPIO_MODE_EVT_RISING_FALLING ? ? ? ? ?设置为输入下降沿或上升沿产生"事件".

void HAL_GPIO_DeInit(GPIO_TypeDef ?*GPIOx, uint32_t GPIO_Pin)

将GPIO恢复为默认状态,清除中断上下拉配置等 默认的状态是 浮空输入(floating input).

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

读取IO输入状态.?

void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);

设置IO输出电平.

void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

?翻转IO输出电平.

HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

?锁定IO配置,直到MCU复位.

void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);

IO中断处理句柄,调用IO中断处理函数.

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);

IO中断处理函数.

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:40:08  更:2021-08-01 14:42:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:28:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码