TI中文支持网
TI专业的中文技术问题搜集分享网站

F28335的GPIO编程问题

 各位,请教一个问题,代码如下:

GpioDataRegs.GPADAT.bit.GPIO2 = 1;    // 灭
GpioDataRegs.GPADAT.bit.GPIO3 = 1;    // 灭
GpioDataRegs.GPADAT.bit.GPIO4 = 0;    // 亮
GpioDataRegs.GPADAT.bit.GPIO5 = 0;    // 亮
单步调试时,IO输出如预期一样,GPIO2和GPIO3输出是1,GPIO4和GPIO5输出是0,
正常运行程序时,GPIO的输出却不是单步执行的结果,必须在每句之间插入延时才如预期结果,为什么?
GpioDataRegs.GPADAT.bit.GPIO2 = 1;    // 灭
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO3 = 1;    // 灭
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO4 = 0;    // 亮
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO5 = 0;    // 亮 

user4210162:

回复 user78960159:

谢谢你。那请问是什么情况下要用DAT寄存器,GPIO作为输入口才用DAT寄存器么?

 各位,请教一个问题,代码如下:

GpioDataRegs.GPADAT.bit.GPIO2 = 1;    // 灭
GpioDataRegs.GPADAT.bit.GPIO3 = 1;    // 灭
GpioDataRegs.GPADAT.bit.GPIO4 = 0;    // 亮
GpioDataRegs.GPADAT.bit.GPIO5 = 0;    // 亮
单步调试时,IO输出如预期一样,GPIO2和GPIO3输出是1,GPIO4和GPIO5输出是0,
正常运行程序时,GPIO的输出却不是单步执行的结果,必须在每句之间插入延时才如预期结果,为什么?
GpioDataRegs.GPADAT.bit.GPIO2 = 1;    // 灭
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO3 = 1;    // 灭
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO4 = 0;    // 亮
DELAY_US(10);
GpioDataRegs.GPADAT.bit.GPIO5 = 0;    // 亮 

user78960159:

回复 user4210162:

嗯 是的 一般涉及数据总线操作用DAT似乎更合理一些

就单独GPIO,用clear 、set代码目的更明确一些

赞(0)
未经允许不得转载:TI中文支持网 » F28335的GPIO编程问题
分享到: 更多 (0)