This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

GPIO_WritePin和GpioDataRegs.GPBDAT.bit.GPIOxx直接赋值的区别?

Other Parts Discussed in Thread: C2000WARE

使用的开发板LaunchpadF28379D

//提问更新

我发现不是函数的问题

而是我连续赋值两个管脚,第一个管脚的赋值就会失效

比如如图中注释部分,我连用

GpioDataRegs.GPBDAT.bit.GPIO34=1;

GpioDataRegs.GPBDAT.bit.GPIO40=1;

那么34管脚的赋值就会失败,40管脚能够成功赋值。而如果我单步运行的话,两个语句都能正常运行,这是什么原因呢?

//以下为原提问

如图我在main函数主循环里写了这样一段程序用来检测GPIO32的电平,并通过LED GPIO34的亮和灭来响应获取的高低电平。

图中我用GPIO_WritePin(34,1)和GPIO_WritePin(34,0)时LED可以正常亮灭

但是将GPIO_WritePin改成GpioDataRegs.GPBDAT.bit.GPIO34=1和GpioDataRegs.GPBDAT.bit.GPIO34=0时程序不能正常工作,通过观察变量可以看到32脚连接高/低电平后对应的GpioDataRegs.GPBDAT.bit.GPIO32变成了1/0,但GpioDataRegs.GPBDAT.bit.GPIO34一直都是0,LED一直亮。只有设置断点后单步运行LED灯才会根据GPIO32连接的高低电平正常亮灭。