Part Number:TMS320F280049C
GPIO的输出异常,当程序同时置位两个IO时,其输出不能同时实现高电平,其中一个IO会出现一个200ns时间的高电平脉冲;程序代码如下:
while(1)
{
GpioDataRegs.GPADAT.bit.GPIO0 = 1;
GpioDataRegs.GPADAT.bit.GPIO1 = 1;
delay_us(1);
GpioDataRegs.GPADAT.bit.GPIO0 = 0;
GpioDataRegs.GPADAT.bit.GPIO1 = 0;
delay_us(1);
}
程序配置为错位输出时,其IO能够正常输出;程序代码如下:
while(1)
{
GpioDataRegs.GPADAT.bit.GPIO0 = 1;
delay_us(1);
GpioDataRegs.GPADAT.bit.GPIO1 = 1;
delay_us(1);
GpioDataRegs.GPADAT.bit.GPIO0 = 0;
delay_us(1);
GpioDataRegs.GPADAT.bit.GPIO1 = 0;
delay_us(1);
}
F280049的GPIO是悬空状态,且配置为输出,这是因为什么原因导致此种情况?
Green Deng:
这个跟GPxDAT寄存器的性质有关,就是需要加个延时才可以。所以如果只是反转GPIO的话建议用GPxSET/GPxCLEAR/GPxTOGGLE寄存器操作。
,
user3788754:
的确是这样,多谢