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.

[参考译文] LAUNCHXL-F28377S:GPIO_SetupPinMux 的基础知识

Guru**** 2542160 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/595710/launchxl-f28377s-basics-of-gpio_setuppinmux

器件型号:LAUNCHXL-F28377S

大家好、

我想将 GPIO_SetupPinMux 用于 SPI-C、我对如何使用它感到困惑。

"TMS320F2837xS DelfinoTm微控制器"手册显示了一个表格,用于选择特定的 GPIO 引脚及其由 GPIO 索引、GPyGMUXn.GPIOz 和 GPyMUXn.GPIOz 使用
 表4-4. GPIO 复用引脚、但 GPIO_SetupPinMu 等 GPIO 的功能具有 UINT16  引脚、 UINT16 CPU 和 UINT16 外设的三个参数。

引脚是引脚编号、CPU 是 CPU 编号、但 外设是什么? 以及与表4-4有何关系?
最棒的
Takano
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Takano、

    我同意可以更好地命名这些参数。 我将提交一个 TT 以修改名称。

    空 GPIO_SetupPinMux (UINT16引脚、UINT16 CPU、UINT16外设)

    以下是有关这些参数的说明:

    Pin -这是 GPIO 编号
    CPU -这是 CPU 编号- 1 (请参阅 GPIO_MUX_CPU1和 GPIO_MUX_CPU2的定义)
    外设-这是您在数据表中引用的该表上的多路复用器位置。 这将是0-15之间的整数、具体取决于您选择的值。

    下面是 controlSUITE 中 i2c_EEPROM 示例的一个片段。

    GPIO_SetupPinMux (32、GPIO_MUX_CPU1、1);
    GPIO_SetupPinMux (33、GPIO_MUX_CPU1、1);

    最后一个参数是"1"、因为 GPIO 32和33上的 I2C 信号处于表4-4中的多路复用器位置1。

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

    您好 、Kris - San、

    感谢您的回复。

    我想了解  表4-4中"1"对应的位置、外设是 GPIO 索引、GPyGMUXn.GPIOz 和/或 GPyMUXn.GPIOz、其中一个是外设? 还是、 GPyGMUXn.GPIOz 和 GPyMUXn.GPIOz 都是包含4位描述的?

    最棒的

    Takano

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

    Takano、

    外设参数是表4-4顶部的 GPIO 索引。 如果看一下函数的代码、则会根据"外设"(GPIO 索引)值计算 GPyGMUXn 和 GPyMUXn 的值。 因此、您将始终传递一个与表中的 GPIO 索引值直接匹配的整数0-15。

    此致、
    Kris

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

    我还不理解您的意见、请帮助我澄清。

    GPyMUX 的值为0b00、0b01、0b10和0b11、这是一个两位选择器编号、您描述了"外设"参数的值为0-15。 因此、我认为 GPyGMUXn 是更高的两位四位(0-15表示、GPyGMUXn 位宽度为2 = 4 - 2)、因此外设=(GPyGMUXn << 2)| GPyMUX。 这是否正确?

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

    Takano、

    抱歉。 我解释错了。 在表4-4的顶部、将传递给函数的是 GPIO 索引标头。 这是0-15 I 引用的整数。  我将返回并编辑我之前的帖子以更正此问题。

    这是 GPIO_SetupPinMux 函数中的代码、该函数使用 GPIO 索引(外设参数)计算 GPyMUX 和 GPyGMUX 值。

    *gmux |=(uint32)((外设>> 2)& 0x3UL)<<(2*pin16);
    *mux |=(uint32)(外设和0x3UL)<<(2*pin16);

    此致、

    Kris

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

    您好、Kris - San、

    我还不理解您的部分 “<<(2*pin16)"的代码,pin16是什么?

    但我可能理解如下:

    外设参数= GPIO 索引标头=((GPyGMUX 和0x3)<< 2)|(GPyMUX 和0x3);

    是这样吗?

    最棒的

    Takano