主题中讨论的其他器件: SysConfig
工具与软件:
您好!
我正在使用进行一个项目 TMS320F280049C MCU 和我遇到一个 GPIO 引脚出现异常行为。 在我的应用中、我是在控制 GPIO22 、 GPIO15 和 GPIO14 使用GPADAT具有2D 数组和索引的寄存器、如下所示:
GpioDataRegs.GPADAT.bit.GPIO22 = muxstates[currentMuxIndex][0];
GpioDataRegs.GPADAT.bit.GPIO15 = muxstates[currentMuxIndex][1];
GpioDataRegs.GPADAT.bit.GPIO14 = muxstates[currentMuxIndex][2];
对于此代码、GPIO14或 GPIO15 (我不记得确切地说是哪一个)的行为有误。 引脚按预期变为高电平、但保持高电平的时间仅为~20ns、而不是预期的10 µs。 有趣的是、GPIO22的行为正常、该引脚上不会出现此类问题。
这样更改 GPIO 分配顺序后、问题似乎消失:
GpioDataRegs.GPADAT.bit.GPIO15 = muxstates[currentMuxIndex][1];
GpioDataRegs.GPADAT.bit.GPIO22 = muxstates[currentMuxIndex][0];
GpioDataRegs.GPADAT.bit.GPIO14 = muxstates[currentMuxIndex][2];
我想设置相邻 GPIO 会导致一些数字信号冲突、但这是一个很粗略的猜测。
我使用允许设置从 SysConfig 配置了所有 GPIO 引脚: 
非常感谢任何解释。
谢谢!
Gökhan μ A