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代码目的更明确一些