EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
嵌入式系统学习——STM32之GPIO P. b6 m: g! |3 c2 d% S0 J% ?
j" E3 C0 [0 |4 r- `! U( {; O3 k/ E G9 P# N }
----第一篇:GPIO库 文档说明和约定: 该文档主要是对STM32F4各个模块的库进行翻译和说明。文档中加入了作者的一些理解,建议和小贴士。并且在文档最后,加入了一些使用该库模块的案例。希望大家通过对该文档的阅读,可以更好的使用STM32的库函数进行学习和项目开发。之所以选用1.4.0版本进行翻译和说明,因为该版本群众基础较好,有大量的使用者和相关资料。后续也会推出新版本库和CubeMX库的翻译和说明,希望大家喜欢和支持。如果大家觉得文档有什么问题,麻烦请提出,如果确认问题存在,作者会及时修改。 相关术语说明: gpio:通用输入输出接口 gpio管脚:一个io管脚,这个管脚可以有多个配置。在库函数中用GPIO_Pin_1这样的宏定义表示 gpio端口(gpio分组):一组gpio管脚的信息。在库函数中用宏定义GPIOA GPIOB等表示 1 gpio库说明 库文件名:stm32f4xx_gpio.c 文档提示翻译: 如何使用这个驱动 (1) 使用RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE)函数使能GPIO的AHB总线时钟。 (2) 使用GPIO_Init()函数对每个引脚进行四种可能的配置 《1》 输入状态:Floating(浮空), Pull-up(上拉), Pull-down(下拉) 《2》 输出状态:Push-Pull (上拉下拉)(Pull-up(上拉), Pull-down(下拉) or no Pull(不上拉也不下拉)),Open Drain(开漏) (Pull-up(上拉), Pull-down(下拉) or no Pull(不上拉也不下拉)),在输出模式,速度配置成2MHZ,25MHZ,50MHZ和100MHZ. 《3》 第二功能:上拉下拉和开漏 《4》 模拟:当一个管脚被用作ADC通道或者DAC输出的时候,需要配置成此模式 (3) 外设的第二功能: 《1》 在ADC和DAC模式,使用GPIO_InitStruct->GPIO_Mode = GPIO_Mode_AN把需要的管脚配置成模拟模式 《2》 对于其它的管脚(定时器,串口等): l 使用GPIO_PinAFConfig()函数把管脚和需要的第二功能进行连接 l 使用GPIO_InitStruct->GPIO_Mode = GPIO_Mode_AF把需要的管脚配置成第二功能模式 l 通过成员变量GPIO_PuPd, GPIO_OType and GPIO_Speed选择类型,上拉下拉和输出速度 l 调用函数GPIO_Init() (4) 在输入模式,使用函数GPIO_ReadInputDataBit()得到配置好管脚的电平 (5) 在输出模式,使用函数GPIO_SetBits()/GPIO_ResetBits()设置配置好IO的高低电平 (6) 在复位过程和刚刚复位后,第二功能是无效的,GPIO被配置成了输入浮空模式(JTAG管脚除外) (7) 当LSE振荡器关闭的时候,LSE振荡器管脚OSC32_IN和OSC32_OUT可以作为通过IO来使用(分别用PC14和PC15表示)。LSE的优先级高于GPIO函数 (8) 当HSE振荡器关闭的时候,HSE振荡器管脚OSC_IN和OSC_OUT可以作为通用IO(PH0,PH1)来使用。HSE的优先级高于GPIO函数。 5 a) V7 X6 F8 H: y1 L) t0 Y; J
|