使用GPIO库函数时,其端口参数怎么表达?

使用DPI接口时,根据LCM IC支持的情况,可以选择16bus、18bus传输RGB格式文件,在GPIO 部分分为R、G、B分别对应8个GPIO(GPIO20~46期间),客户采用DPI接口需要根据选择的bus

方式进行配置,推荐RGB端口全部配置为对应的复选模式,并设置为OUT输出。

采用DBI接口,有两种模式选择,一种是选择共用DPI的bus脚+DPI控制线,另一种是共用nand data pin+CPU 控制线。

不同ESD方式需要注意的方面

目前我司HDMI/MHL的相关code和driver都是有集成在codebase中的,要使用的话,只需要只需要在对应的ProjectConfig.mk文件中开启,并且在dct中配置好对应的引脚定义即可。

大部分TE问题是由于没有正常开启TE所导致,首先检查TE是否开启。

89平台使用内部TE,lcm driver中只需要在init过程中打开LCM TE即可,一般是写0x35寄存器,部

User Button硬件连接如下图所示:当按键被按下,PB9检测到低电平,相反PB9被3.3V 拉高。

硬件连接如下图所示:高电平点亮LED。

要想将PB9管脚配置成输入模式,程序所需如下步骤:(必须的)

第一步:配置系统时钟。见F103x RCC寄存器配置

除此之外,还需将GPIO外设时钟打开。

第二步:配置中断向量表。决定将程序下载到RAM中还是FLASH中。以后讲。

第三步:配置GPIO的模式。输入模式还是输出模式。STM32_及讲解——LED跑马灯已讲过。

第四步:读该管脚上的电平状态。需要介绍一个库函数。

涉及到GPIO_IDR寄存器,如下所示

经过上面4步,就可以检测PB9管脚的电平状态。

按键按下,PB9管脚应该是低电平,怎么才能验证,最简单的方法是:当按键被按下,点亮所有LED。

还有个问题:PB9的初始状态是什么?或者说GPIO_Configuration函数后PB9管脚上是高电平还是低电平?

这要看GPIO_InitStructure结构体的GPIO_Mode成员变量初始化为什么,如果为上拉,则PB9管脚为高电平;如果为下拉,则PB9管脚为低电平。

GPIO管脚内部如图:

当GPIO初始化为输入上拉模式,由上图可知:该端口向外输出高电平,即:ODR对应位为1

当GPIO初始化为输入下拉模式,由上图可知:该端口向外输出低电平,即:ODR对应位为0

如何调试:在下面两处处设个断点。

可以看到:当GPIO设置成输入上拉模式时,等待GPIO初始化完毕,该管脚ODR9为1

2. 在main函数中,设置一个断点。

全速执行(F5),按住User Button不放,可以看到GPIOB_IDR的IDR9=0。当放开按键时,再单步调试(F10),

1. GPIO配置成输入模式时,最好配置成浮空输入(ODR对应位为0)。上拉、下拉只是该管脚初始化完对外表现的电平状态。

2. GPIO配置成输入模式,只关心GPIO_IDR寄存器。检测该管脚外部输入的是高电平还是低电平。

3. GPIO配置成输出模式,只关心GPIO_ODR寄存器。通过该管脚向外部输出高电平还是低电平。

函数解释:GPIO的初始化函数,该函数的作用是对io进行初始化。

(2)GPIO_InitStruct,GPIO的初始化相关结构体。该结构体里的成员变量决定了我们具体的初始化参数。以下进行说明:

 GPIO_Speed:指定IO最快翻转速度,也就是当使用IO产生频率的最大速度。有四种模式:

函数解释:读取io输入管脚的值

返回值:输入管脚的值 Bit_SET(高电平),Bit_RESET(低电平)

函数解释:读取输入io数据,该函数用于读取一个io分组的所有数据

返回值:一个io端口的所有数据(输入状态)

函数解释:读取io输出管脚的值

返回值:输出管脚的值 Bit_SET(高电平),Bit_RESET(低电平)

函数解释:读取输出io数据,该函数用于读取一个io分组的所有数据

返回值:一个io端口的所有数据(输出状态)

函数解释:对io管脚进行置位(输出高电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。

函数解释:对io管脚进行复位(输出低电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。

函数解释:对某一位进行写入操作。

(3)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)

函数解释:对GPIO端口进行写入操作,适用于对统一端口的多个管脚的写入。

(2)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)

函数解释:翻转指定的GPIO口,如果当前io是高电平,则变为低电平。如果当前io是低电平,则变为高电平。


我要回帖

更多关于 二端口网络四个参数 的文章

 

随机推荐