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.

[参考译文] TMS320F28069M:尝试将 GPIO 23设置为高电平或低电平

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/925471/tms320f28069m-trying-to-set-gpio-23-high-or-low

器件型号:TMS320F28069M

您好!

我正在尝试在基于 InstaSPIN 的项目中将 GPIO 23设置为高电平和低电平,但出于某种原因,尚未成功。 我也会尝试使用另一个 GPIO、但现在这是我唯一确信可以安全使用的 GPIO。

默认情况下,GPIO 23的测量值似乎很高(3.3V),因此我现在只是尝试将其设置为低电平。 下面是我已经完成的步骤:

  1. hal.c 中、我验证了其模式是否设置为通用:
    GPIO_setMode (obj->gpioHandle、GPIO_Number_23、GPIO_23_Mode_generalpurpose);
  2. main.c 中、我将引脚设置为低电平、刚好在死循环之前:
    HAL_setGpioLow (halHandle、GPIO_Number_23);
    (我还尝试在 main.c 的几个位置输入这行代码,以完全确定它是否运行)
  3. 我已搜索项目以确保 GPIO_Number_23在其他任何地方都不使用。

但是、GPIO 23在我运行项目时仍然根据我的示波器测量高电平。 我是否错过了一个步骤?

在这种情况下,我的目标是使用 GPIO 23来测量代码段的运行时间,方法是在段的开头将其设置为高电平,在结尾将其设置为低电平,然后使用示波器测量其高电平的时间。

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

    Griffin、

    您还需要验证 GPIO 是否设置为输出模式。 您可以通过查看 GPADIR 寄存器来验证这一点。

    代码行应如下所示:

    GPIO_setDirectionMode (23、GPIO_DIR_MODE_OUT);

    此致、
    Cody

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

    啊哈! 您说得对、方向设置不正确。 在 hal.c 中添加这一行代码实现了以下目的:

    GPIO_setDirection (obj->gpioHandle、GPIO_Number_23、GPIO_Direction_Output);

    它现在起作用、但出于好奇、我如何查看 GPADIR 寄存器来验证类似的情况?

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

    Griffin、

    您可以使用寄存器查看器。 如果您看不到该窗口、则可以在"View"下启用该窗口。

    此致、
    Cody