1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本篇主要讲解 STM32F1xx HAL库 中gpio部分的结构体,函数及应用。
三、如何使用这个驱动程序 一、结构体部分 typedef struct { uint32_t Pin //选择引脚 uint32_t Mode //设置模式 uint32_t Pull //设置上拉下拉 uint32_t Speed //设置速度 } GPIO_InitTypeDef; GPIO_InitTypeDef; 结构体中用到的宏定义: GPIO pins define(引脚选择) GPIO_PIN_0 引脚0 GPIO_PIN_1 引脚1 GPIO_PIN_2 引脚2 GPIO_PIN_3 引脚3 GPIO_PIN_4 引脚4 GPIO_PIN_5 引脚5 GPIO_PIN_6 引脚6 GPIO_PIN_7 引脚7 GPIO_PIN_8 引脚8 GPIO_PIN_9 引脚9 GPIO_PIN_10 引脚10 GPIO_PIN_11 引脚11 GPIO_PIN_12 引脚12 GPIO_PIN_13 引脚13 GPIO_PIN_14 引脚14 GPIO_PIN_15 引脚15 GPIO_PIN_All 所有引脚选定 GPIO_PIN_MASK 维护测试的PIN掩码 GPIO mode define(模式设置) GPIO_MODE_INPUT 浮动输入模式 GPIO_MODE_OUTPUT_PP 推挽输出模式 GPIO_MODE_OUTPUT_OD 开漏输出模式 GPIO_MODE_AF_PP Alternate 复用推挽输出 GPIO_MODE_AF_OD Alternate 复用开漏输出 GPIO_MODE_AF_INPUT Alternate 复用输入模式 GPIO_MODE_ANALOG 模拟模式 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 外部事件模式下降/上升边缘触发检测 GPIO pull define(设置上拉和下拉电阻) GPIO_NOPULL 没有激活上拉或者下拉 GPIO_PULLUP 激活上拉模式 GPIO_PULLDOWN 激活下拉模式 GPIO speed define(设置速度) GPIO_SPEED_LOW 低速 GPIO_SPEED_MEDIUM 中速 GPIO_SPEED_HIGH 高速 typedef enum{ GPIO_PIN_RESET = 0u, //置0 GPIO_PIN_SET //置1 } GPIO_PinState; 枚举类型结构体,使引脚重置(0)或设置(1) 二、函数部分 2.1所有函数及功能总览
HAL_GPIO_Init
HAL_GPIO_DeInit
HAL_GPIO_ReadPin
三、如何使用这个驱动程序 1. 开启GPIO APB2时钟功能的方法如下: __HAL_RCC_GPIOx_CLK_ENABLE() 2. 使用HAL_GPIO_Init()配置GPIO管脚 2.1使用GPIO_InitTypeDef结构中的“mode”成员配置IO模式 2.2使用GPIO_InitTypeDef中的Pull成员激活上拉,下拉电阻 2.3如果输出或替代功能模式选择:速度配置通过GPIO_InitTypeDef结构中的“Speed”成员 2.4当引脚用作ADC通道或DAC时,需要模拟模式输出 2.5如果外部中断/事件选择“模式”成员从GPIO_InitTypeDef结构选择类型(中断或事件)和相应的触发事件(上升或下降或两者皆有) 3. 当选择外部中断/事件模式时,配置NVIC IRQ优先级使用HAL_NVIC_SetPriority()映射到EXTI,并使用HAL_NVIC_EnableIRQ() 4. 要获得在输入模式下配置的引脚的电平高低,使用HAL_GPIO_ReadPin() 5. 设置/翻转在输出模式下配置的引脚的电平HAL_GPIO_WritePin () / HAL_GPIO_TogglePin() 6. 使用HAL_GPIO_LockPin()来锁定引脚配置,直到下一次重置 7. 在复位期间和复位后,备用功能不活动,GPIO引脚配置为输入浮动模式(JTAG引脚除外) 8. 当LSE振荡器关闭时,LSE振荡器管脚OSC32_IN和OSC32_OUT可以作为通用器件使用(分别为PC14和PC15), LSE有优先权通过GPIO功能 9. HSE振荡管脚OSC_IN/OSC_OUT可作为PD0和当HSE振荡器关闭时为PD1, HSE比GPIO有优先权 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:24 , Processed in 0.722034 second(s), Total 76, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号