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.

[参考译文] CC2642R:SDK 6.20.00.29 -从引脚驱动程序问题迁移到 GPIO

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1179976/cc2642r-sdk-6-20-00-29---migration-to-gpio-from-pin-driver-question

器件型号:CC2642R
Thread 中讨论的其他器件:SysConfig

您好!

我将基于5.20.00.29的工程迁移到 SDK 6.20.00.29。

由于为了 GPIO 而删除了 PIN 驱动程序、我想澄清一些问题、因为我的代码需要更改。

没有在 gpioPinConfigs 数组中指定任何内容并在运行时配置所有内容、是否存在任何功能缺陷和硬件相关问题?

关于 GPIO 驱动程序的此链接:

https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/6.20.00.29/exports/docs/drivers/doxygen/html/_g_p_i_o_8h.html

例如、是否可以提供所有禁用的引脚:

GPIO_PinConfig gpioPinConfigs[31]={
   GPIO_CFG_NO_DIR、/* DIO_0 */
   GPIO_CFG_NO_DIR、/* DIO_1 */
   GPIO_CFG_NO_DIR、/* DIO_2 */
   。
   GPIO_CFG_NO_DIR、/* DIO_30 */
   }

然后配置应用程序在运行时所需的任何引脚、例如:

//将按钮引脚配置为输入并配置其中断
//传递 INT_ENABLE 意味着您不需要同时调用 GPIO_enableInt()
DIO_0、
);

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

    嗨、Ivan、

    感谢您在 e2e 上发帖。 下面是我们 的 GPIO++驱动程序移植指南的链接、可以解答您的问题。

    我会将此主题转发给我的同事、他可以更好地提供进一步的帮助。

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

    您好、Ivan、

    根据 Ammar 提供的内容、您还可以参考 GPIO TI 驱动程序示例。  GPIO 引脚在 SysConfig 根据 SysConfig 模块中的 GPIO PinMux 选择生成的 ti_drivers_config.c 中进行配置。  可以通过将 ti_drivers_config.c 复制到工程的主工作区中、进行必要的更改并从 SysConfig 中的"Show generated Files"视图中删除 ti_drivers_config.c 的"Include in build"选项来更改 gpioPinConfigs 数组。  GPIO 配置仍可在运行时进行设置。

    此致、
    Ryan

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

    Ryan、

    感谢您的回答。 这正是我所做的-完全绕过 SysConfig、我将/[output]/SysConfig 中的所有源文件和 h 文件复制到[项目根目录]/SysConfig、我更新了项目定义、命令文件位置等 此部件工作正常。

    我要求在 drivers_config.c 中传递 empty/All disabled" GPIO 表的原因是、我希望在运行时保留实际的 GPIO 设置、 在我的示例中、实际的 DIO 数会因我们拥有的不同板而异(我每个板具有不同的构建配置、其中定义了每个板的引脚 DIO)。 然后、我有几段代码用于配置引脚。 例如:

    GPIO_setConfig (
    Button1_DIO、
    GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_INT_FALLING | GPIO_CFG_INT_ENABLE
    );

    其中、Button1_DIO 可以是1或5、根据我当前的构建配置、它们具有不同的值- Board1可能具有 Button1_DIO = 1、而 board2可能具有 Button1_DIO = 5、例如。

    我的问题是、

    使用{GPIO_CFG_NO_DIR、GPIO_CFG_NO_DIR、..、GPIO_CFG_NO_DIR}表禁用驱动器配置中的所有引脚并使用应用内部如下代码进行设置是否存在任何概念问题:

    GPIO_setConfig (
    Button1_DIO、
    GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_INT_FALLING | GPIO_CFG_INT_ENABLE
    );

    我可以也将在 测试应用中尝试、但希望获得值得信赖的 TI 意见、如果仅在应用运行时配置 GPIO 引脚存在根本错误。 我知道、即使是 DRIVERS_CONFIG 也显然是运行时的、 但我想告诉大家、DRIVERS_CONFIG 是否通用、没有特殊引脚、然后使用应用程序代码在稍后设置 GPIO (可能是在主应用程序循环代码启动之前、甚至在 DEVICE_INIT 事件发送到应用程序后改变)

    请您对以上内容发表评论吗?

    谢谢、

    伊凡

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

    您好、Ivan、

    您应该为所有引脚(不管是否使用)分配正确的 gpioPinConfigs 设置以实现最佳低功耗启动行为、但是在 完全从 ti_drivers_config.c 中删除 gpioPinConfigs 并完全从主应用线程(即 GPIO_setConfig)配置引脚后、可以使应用正常运行。  根据我自己的测试、您将需要保留 gpioUserArgs、它与正在编程的器件的正确引脚数保持一致、以便固件按预期运行。

    此致、
    Ryan