您好!
如今、我们遇到了 F28235的一个问题。
GPIO 32和33用于 I2C。 执行这些代码后、我们发现:
- GPBQSEL1位2仍然是0、而不是1;位3是1、这是正确的;
- GPBMUX1位2仍然为0、而不是1;位0为1、这是正确的。
EALLOW;
GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3; //异步输入 GPIO32 (SDAA)(位1和0)
GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3; //异步输入 GPIO33 (SCLA)(位3和2)
GpioCtrlRegs.GPBMUX1.bit.GPIO32=1; //将 GPIO32配置为 SDAA (位1和0)
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1; //将 GPIO33配置为 SCLA (位3和位2)
EDIS;
这些测试是:
- 从 JTAG 和寄存器地址读取 GPBQSEL1和 GPBMUX1寄存器值、它们是相同的;
- 写入“1”和“3”后,虽然读取值不正确,但 I2C 功能正常。 这意味着,“GpioCtrlRegs.GPBMUX1.bit.GPIO33”在表达式窗口中显示值为“0”,但 GPIO 作为 I2C 函数工作。
- 检查了另一个 F28235。 没有这种问题。
我的怀疑是:问题可能出在哪? 我们如何才能取得进展?
非常感谢。
BR、Jordan