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.

[参考译文] C2000WARE:C2000Ware_6_00_01_00\driverlib\f28p55x\driverlib 中的 ASysCtl_enableGPIOInputBuffer ():错误?

Guru**** 2774345 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1618427/c2000ware-asysctl_enablegpioinputbuffer-in-c2000ware_6_00_01_00-driverlib-f28p55x-driverlib-bug

器件型号: C2000WARE

大家好!

在 C2000Ware_6_00_01_00\driverlib\f28p55x\driverlib\asysctl.h 中、可以使用以下函数:

//*****************************************************************************
//
//! Enable GPIO Input buffer (INENA control).
//!
//! \param pin can be 0, 23, 25, 31, 46 or 103
//!
//! \return None
//
//*****************************************************************************
static inline void ASysCtl_enableGPIOInputBuffer(uint32_t pin)
{
    ASSERT((pin == 0U)  || (pin == 23U) || (pin == 25U) ||
           (pin == 32U) || (pin == 46U) || (pin == 103U));

    uint16_t mask =
                    (pin == 20U)   ? ASYSCTL_GPIOINENACTRL_GPIO20   :
                    (pin == 21U)   ? ASYSCTL_GPIOINENACTRL_GPIO21   :
                    (pin == 62U)   ? ASYSCTL_GPIOINENACTRL_GPIO62   :
                    (pin == 63U)   ? ASYSCTL_GPIOINENACTRL_GPIO63   :
                    0U;

    EALLOW;
    HWREGH(ANALOGSUBSYS_BASE + ASYSCTL_O_GPIOINENACTRL) |= mask;
    EDIS;
}

这看起来可疑。

断言仅接受引脚 0、23、25、32 (\param 描述显示 31)、46,103。
但以下代码仅处理引脚 20、21、62、63、对任何其他引脚不执行任何操作。
因此、实际上、如果断言处于活动状态、该函数不能执行任何操作。

对于 ASysCtl_、完全相同 DIS ableGPIOInputBuffer()。

这是一个错误吗?

此致、
Wolfgang

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

    您好、

    是的、您回答正确。 感谢您报告此问题。 断言检查中存在错误。 正确答案如下:

    ASSERT((pin == 20U)  || (pin == 21U) || (pin == 62U) || (pin == 63U));

    我们将在下一个 C2000ware 版本中解决该问题。 同时、您可以在 asysctl.h 文件中本地应用此更正。

    此致、

    Meghavi