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.

[参考译文] CCS/F28M35H52C:GPIO 21不能正常工作

Guru**** 2538930 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/620581/ccs-f28m35h52c-gpio-21-doesn-t-work-fine

部件号:F28M35H52C

工具/软件:Code Composer Studio

您好,

我使用Concerto板的GPIO 21。  

这些是我在M3端的配置。  

SysCtlPeripheralEnable(sysctl_Periph_GPIOD);

GPIOPinConfigureCoreSelect (GPIO _PORTD_BASE,0xFF,GPIO PIN _C_CORE _SELECT);

这是我在C29侧的配置。  

GpioG1CtrlRegs.GPAMUX2.bit.GPIO21 = 0;//设置为GPIO模式
GpioG1CtrlRegs.GPADIR.bit.GPIO21 = 1;//设置为输出

我有10kHz的中断,可以更改GPIO的状态。 但我需要对同一命令的两行进行编码才能真正更改GPIO状态:

GpioG1DataRegs.GPADAT.bit.GPIO21 =变量;
GpioG1DataRegs.GPADAT.bit.GPIO21 =变量;

如果我只留下一行,GPIO将不会保持新状态,它的工作方式与图片中的一样。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    您是否有任何其他ISR/功能可切换相同的GPIO引脚? 设置GPIO引脚两次时,是否可以共享波形?

    此外,如果可以,请分享完整的ISR代码。

    此致,
    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我没有显示所有问题。 我发现无法在两个GPIO引脚之间进行更改。 例如:

    GpioG1DataRegs.GPADAT.bit.GPIO21 =变量1;
    GpioG1DataRegs.GPADAT.bit.GPIO23 =变量2;

    我不知道问题是否是我设置了相同的端口。 在这种情况下,GPIO21不会像我需要的那样发生变化。 但如果我更改了序列:

    GpioG1DataRegs.GPADAT.bit.GPIO23 =变量2;
    GpioG1DataRegs.GPADAT.bit.GPIO21 =变量1;

    现在,GPIO 23无法正常工作。

    如果您知道为什么会发生这种情况。 谢谢。如果我在GPIO SET命令之间放置任何命令行,一切都正常。 这就好像需要一段时间来正确更改端口状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    请参阅以下内容:
    http://processors.wiki.ti.com/index.php/General_Purpose_IO_(GPIO)_FAQ_for_C2000#Q:_Back-to-back_DAT_register_writes_do_not_work_as_expected


    谢谢!
    Brett