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.

28379D

运行GPIO配置为PWM模式,相应的口就会输出低电平,有什么办法能不输出低电平吗?

GpioCtrlRegs.GPAGMUX1.bit.GPIO0 = 0;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; //配置为EPWM1A
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; //关闭上拉;

GpioCtrlRegs.GPAGMUX1.bit.GPIO1 = 0;
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; //配置为EPWM1B
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; //关闭上拉;

  • 首先您可以看一下

    processors.wiki.ti.com/index.php

    On newer devices, such as F2807x and F2837x devices, all pins have their internal pull-up resistors disabled at reset. They can be enabled later via software.

    与PWM口复用的GPIO引脚是默认不使能的

    上电时默认的方向是输入,所以上电后无论否有使能上拉电路,GPIO引脚对应的电平都不会对外部电路有影响的;

    请问您现在是要输出高电平?

    您可以尝试外加上拉电阻,同时需要在软件里设置方向为输出。还有一种办法是使能内部上拉,同时在软件里也设置方向为输出。

    通过软件设置的话,那就不是上电后立即生效的,所以做法是不要在main()函数里执行,而是放到reset后执行汇编语句的第一时间里去,也即codestartbranch.asm文件里,您可以参考其中关闭看门狗的方式对GPIO进行设置。
  • 初始化上述GPIO口时,要让GPIO口输出为高电平
  • 那请您尝试上面的方法:

    您可以尝试外加上拉电阻,同时需要在软件里设置方向为输出。还有一种办法是使能内部上拉,同时在软件里也设置方向为输出。
  • 我将GPIO口初始化为PWM模式,并在初始化语句出设置断点,发现执行完初始化语句,这些GPIO口就会输出低电平,28379D GPIO配置为pwm模式时默认电平为低电平吗?

    GpioCtrlRegs.GPAGMUX1.bit.GPIO0 = 0;
    GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; //配置为EPWM1A
    GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; //关闭上拉;


    GpioCtrlRegs.GPAGMUX1.bit.GPIO1 = 0;
    GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; //配置为EPWM1B
    GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; //关闭上拉;

  • 很抱歉,之前漏掉了您的帖子。请问您现在是否解决了问题?