GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;
我在程序中如此配置GPIO,并且确定没有其他地方使用到这两个GPIO,但是在我如此配置数据寄存器
GpioDataRegs.GPADAT.bit.GPIO0 = 1;之后,发现,GPIO并没有变高,而且寄存器表中还是显示0,用万用表测试管脚也是低电平,请问是什么原因
Green Deng:
你好,根据你提供的配置没发现有什么问题,你可以对照TI提供的例程,看是否有其他地方的错误。
需要注意的是,使用GPxDAT寄存器进行GPIO操作的时候需要添加一段延时,详细的参考例程中的做法:
C:\ti\c2000\C2000Ware_3_03_00_00\device_support\f2833x\examples\gpio_toggle
user5197967:
回复 Green Deng:
我发现
GpioDataRegs.GPASET.bit.GPIO0 = 1;GpioDataRegs.GPACLEAR.bit.GPIO1 = 1;
如此操作可以正常置高置低,直接写GpioDataRegs.GPADAT.bit.GPIO0 = 1;不可以
Green Deng:
回复 user5197967:
正如上面所说,使用GPxDAT寄存器的时候要加上延时,否则会无效。