课程

课程 讲师

GPIO工作原理

购买数
7
课时数
1
浏览数
4300
主讲人:
邵老师
有效期:
自购买之日起永久
免费
原价:¥10
分享

分享到:

手机查看

一、GPIO基本结构、工作方式

       GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。

       STM32F407ZGT6,一共有7组gpio口。每组IO口有16个IO,16X7 = 112,外加PH0、PH1,共有114个IO口,从GPIOA开始,一直到GPIOG结束,PH0、PH1。


4种输入模式:

        浮空输入模式

        上拉输入模式

        下拉输入模式

        模拟输入模式

4种输出模式:

        开漏输出模式

        开漏复用模式

        推挽式输出模式

        推挽式复用模式


二、GPIO寄存器说明

       每组GPIO端口的寄存器包括:

       一个端口模式寄存器(GPIOx_MODER)

       一个端口输出类型寄存器(GPIOx_OTYPER)

       一个端口输出速度寄存器(GPIOx_OSPEEDR)

       一个端口上拉下拉寄存器(GPIOx_PUPDR)

       一个端口输入数据寄存器(GPIOx_IDR)

       一个端口输出数据寄存器(GPIOx_ODR)

       一个端口置位/复位寄存器(GPIOx_BSRR)

       一个端口配置锁存寄存器(GPIOx_LCKR)

       两个复位功能寄存器(低位GPIOx_AFRL & GPIOx_AFRH)

       BSRR寄存器32位分为低16位BSRRL和高16位BSRRH,BSRRL配置一组IO口的16个IO口的置位状态(1),BSRRH配置复位状态(0)。


三、GPIO库函数介绍

       初始化函数 

        void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);


       读取输入电平函数:

       uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

       uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);


       读取输出电平函数:

       uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

       uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);


       设置输出电平函数:

       void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

       void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

       void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

       void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);


四、GPIO位带操作

       将IO端口的地址扩展成一个32位的字地址,对32位的地址进行操作,这个是STM32允许的。STM32对所有的寄存器配置,都是对某个32位地址的操作,因此对某个IO端口进行操作,就是位带操作。

       把每个比特膨胀为一个32位的字,当访问这些字的时候就达到了访问比特的目的,比如说BSRR寄存器有32个位,那么可以映射到32个地址上,我们去访问(都-改-写)这32个地址就达到访问32个比特的目的。


五、GPIO引脚说明

       端口复用功能

           一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚,比如STM32F407中,PA9,PA10可以复用为串口1的引脚。

       端口重映射功能

           把某些功能引脚映射到其他引脚。

讲师信息

邵老师

邵老师

粉丝:4
多年嵌入式开发经验,精通STM32/51单片机,扎实的C语言基本功
×

分享成功,快去个人中心查看吧~~~

祝您:学习愉快 !

确 定
×

加入我的看单

该课程需要加入我的看单后方可学习,确定加入?

确 定 取 消
关注官方微信