当前位置: 首页 > news >正文

BearPi Std 板从入门到放弃 - 引气入体篇(3)(上两篇前言)

GPIO调用函数

stm32l4xx_hal_gpio.h

/* IO operation functions *****************************************************/
GPIO_PinState     HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); // 读取GPIO状态
void              HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); // 写GPIO
void              HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); // GPIO状态翻转 Low->High / High->Low 
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); // 下次Reset前锁住GPIO口
void              HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin); // 外部中断处理函数,内部调用 HAL_GPIO_EXTI_Callback
void              HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); // 外部中断回调,有默认函数,但使用__weak定义,所以可以被重定义

我们在STM32CubeMX中进行配置GPIO口需要配置的信息在库中对应的结构是 GPIO_InitTypeDef

/** @defgroup GPIO_Exported_Types GPIO Exported Types* @{*/
/*** @brief   GPIO Init structure definition*/
typedef struct
{uint32_t Pin;        /*!< Specifies the GPIO pins to be configured.This parameter can be any value of @ref GPIO_pins */uint32_t Mode;       /*!< Specifies the operating mode for the selected pins.This parameter can be a value of @ref GPIO_mode */uint32_t Pull;       /*!< Specifies the Pull-up or Pull-Down activation for the selected pins.This parameter can be a value of @ref GPIO_pull */uint32_t Speed;      /*!< Specifies the speed for the selected pins.This parameter can be a value of @ref GPIO_speed */uint32_t Alternate;  /*!< Peripheral to be connected to the selected pinsThis parameter can be a value of @ref GPIOEx_Alternate_function_selection */
} GPIO_InitTypeDef;Pin: 引脚配置, 参数 GPIO_PIN_x // x[0...15] 
Mode: 引脚控制模式GPIO 方式:– GPIO_MODE_INPUT : 浮空输入– GPIO_MODE_OUTPUT_PP : 推挽输出– GPIO_MODE_OUTPUT_OD : 开漏输出– GPIO_MODE_AF_PP : 复用推挽– GPIO_MODE_AF_OD : 复用开漏– GPIO_MODE_ANALOG : 模拟– GPIO_MODE_ANALOG_ADC_CONTROL: 模数转换控制外部中断方式: – GPIO_MODE_IT_RISING : 外部中断上升沿检测– GPIO_MODE_IT_FALLING : 外部中断下降沿检测– GPIO_MODE_IT_RISING_FALLING : 外部中断上升下降沿检测外部事件方式:– GPIO_MODE_EVT_RISING : 外部事件上升沿检测– GPIO_MODE_EVT_FALLING : 外部事件下降沿检测– GPIO_MODE_EVT_RISING_FALLING: 外部事件上升下降沿检测
Pull:GPIO_NOPULL : 不上拉也不下拉GPIO_PULLUP : 上拉GPIO_PULLDOWN : 下拉Speed:GPIO_SPEED_FREQ_LOW : 速度高达 5MHzGPIO_SPEED_FREQ_MEDIUM : 速度 5MHz 到 25MHz之间GPIO_SPEED_FREQ_HIGH : 速度 25MHz 到 50MHz之间GPIO_SPEED_FREQ_VERY_HIGH : 速度 50MHz 到 80MHz之间Alternate : 复用设置, 暂时不需要配置到

ST官网关于STM32L4xx的HAL的描述

相关文章:

  • STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础
  • 创建conan包-打包现有二进制文件
  • 用HeidiSQL在MySQL中新建用户
  • JIRA 重建索引
  • TiDB专题---3、TiDB与MySQL兼容性对比
  • python提取通话记录中的时间信息
  • 概率论与数理统计-第五章 数理统计的基础知识
  • 二叉树的实现(纯C语言版)
  • Backend - Django JsonResponse HttpResponse
  • Golang实践录:读取xml配置文件
  • 堆排序详细解读
  • 应急响应-挖矿病毒处理
  • 掌握 Go 语言中的循环结构:从基础到高级
  • ESP32 LVGL Gui-Guider的移植
  • openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引
  • 【RocksDB】TransactionDB源码分析
  • express + mock 让前后台并行开发
  • js数组之filter
  • Laravel Mix运行时关于es2015报错解决方案
  • mysql 数据库四种事务隔离级别
  • PAT A1050
  • pdf文件如何在线转换为jpg图片
  • REST架构的思考
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue 2.3、2.4 知识点小结
  • vue总结
  • Zepto.js源码学习之二
  • 彻底搞懂浏览器Event-loop
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 翻译--Thinking in React
  • 基于游标的分页接口实现
  • 聊聊flink的BlobWriter
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 微信小程序实战练习(仿五洲到家微信版)
  • 正则与JS中的正则
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # include “ “ 和 # include < >两者的区别
  • #FPGA(基础知识)
  • #HarmonyOS:基础语法
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $forceUpdate()函数
  • (¥1011)-(一千零一拾一元整)输出
  • (3)llvm ir转换过程
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (7)STL算法之交换赋值
  • (HAL库版)freeRTOS移植STMF103
  • (二)JAVA使用POI操作excel
  • (算法)N皇后问题
  • (算法)求1到1亿间的质数或素数
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .net 4.0发布后不能正常显示图片问题