一、使用Drv_Tool配置GPIO相应参数(具体配置参照硬件原理图,填充即可)
1.各列参数说明:
1.1.Def.Mode: 表示开机后gpio模块初始化后的GPIO的模式,每个GPIO pin最多有7种模式,MODE0总是为GPIO mode.。
1.2.M0--M7:M0-M1-M3-M4-M5-M6-M7各个GPIO的模式分别代表Def.Mode各个模式是enable还是disable的状态。
备注:
1)GPIO一般有4种模式M0/M1/M2/M3,是指在gpio模块初始化以后,我们需要选用的gpio模式的种类和个数,如GPIO0有如下M0,M1,M2,M3四种工作模式:0:GPIO,1:CMRST,2:CLKM0,3:DSP_GPO0。
2)Def.Mode 和M0--M7 总共9列组合用来设置GPIO的模式。
1.3.InPull En:表示enable Inpull 还是disable Inpull。(Only valid when GPIO is input mode)
1.4.InPull SelHigh:表示是否需要拉高(上拉)。(Only valid when GPIO is input mode and "InPull En" is enable)
备注:
1)是否enable pull 取决于连接到这个GPIO pin脚的外围设备
2)如果为enable pull ,则可以配置成 pull-up or pull down.
1.5.R0/R1:
1.6.Def.Dir:表示开机后gpio模块初始化后的GPIO的输入输出方向配置。
1.7.In/Out:表示gpio模块初始化以后,我们需要选用的输入或输出方向。
备注:
1)每个GPIO pin都可以配置成input or output.。
2)Def.Dir和In/Out:三列组合起来一起用于配置GPIO的输入输出方向。
3)如果GPIO pin如果是output pin,则output value 可以配置成high(1) or low(0).
4)如果GPIO pin如果是input pin,则input value 可以配置成high(1) or low(0).
1.8.INV:GPIO 的数值是否可以被改变。(The GPIO data can be inverted or un-inverted)
备注:此项暂不使用,默认全部不勾选,不处理不考虑。
1.9.OutHigh:It set the default output value is high(1).(Only valid when GPIO is output mode)
1.10.VarName1/2/3:给gpio口一个名称,这样你就可以在程序里使用初始化的名字来调用这个gpio口。
备注:VarName2/3 is for special class when a GPIO pin is shared between two applications or modules.
1.11.Uem GPIO String:作调试用,在工程模式的dev->GPIO里面可以检查到。
1.void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)
功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接口。备注:这些函数在Gpio.C中可以找到。
eg:具体GPIO操作:
GPIO_ModeSetup(led_signal_power_en_pin, 0); //GPIO pin模式设置成GPIO模式
GPIO_InitIO(1, led_signal_power_en_pin); //输出方向
GPIO_WriteIO(1, led_signal_power_en_pin); //写入高电平
三、GPIO其他事项说明
1.GPIO口在系统上电的时候,有的是默认高电平,有的是默认低电平,这是MCU内部决定的,软件无法更改,但是在系统开机过程中,会对GPIO进行初始化,MCU中有几个GPIO模式初始化寄存器,通过这个寄存器给GPIO设置初始模式。
2.这个初始化过程在Gpio_Drv.C中的函数GPIO_init()中,项目开始的时候,先要检查这个部分的模式设置是否正确。
3.GPIO的设置相对来讲比较简单,只要仔细参对原理图,基本上就可以将GPIO配置好。当然有些时候GPIO配置好了也达不到效果,就需要和硬件工程师一起来进行检测分析,测量对应电路的工作电压或电流,来判断工作是否正常。总之在前期的调试方面,多跟硬件工程师沟通、讨论、分析,会很快解决问题。