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.

[参考译文] SIMPLELINK-CC2640R2-SDK:如何编辑 Simplelink SDK 以更改引脚的功能

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1475406/simplelink-cc2640r2-sdk-how-to-edit-the-simplelink-sdk-as-to-change-the-functionality-of-pins

器件型号:SIMPLELINK-CC2640R2-SDK

工具与软件:

我们将编辑使用 TI 的 CC2640R2-RGZ MCU 和 Simplelink SDK (版本5.10.00.02)的现有定制 PCB。 我们已经尝试更改了 SDK 中 board.h、board.c 和 launch 文件中的一些引脚配置、但当我们在 Code Composer Studio 中重新构建和刷写代码时、这似乎不起作用。 有任何关于如何编辑引脚的建议吗?

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

    您好、Jordan、  

    您希望改变哪些 GPIO?  

    要分配 GPIO、请执行以下步骤:  

    在 board.h 中、定义所需的 GPIO。  

    #define Board_DIO21     CC2640R2_LAUNCHXL_DIO21

    定义 CC2640R2_LAUNCHXL.h 中的 CC2640R2_LAUNCHXL_DIO21  

    #define CC2640R2_LAUNCHXL_DIO21     IOID_21

    3.如果您正在使用用于标准数字 GPIO (DIO)的、则可以添加以下代码来进行测试:  

    #include <ti/drivers/GPIO.h>
    #include <ti/devices/cc26x0r2/driverlib/ioc.h>
    
    /* Board Header file */
    #include "Board.h"
    
    /*
     *  ======== mainThread ========
     */
    void *mainThread(void *arg0)
    {
        /* 1 second delay */
        uint32_t time = 1;
    
        /* Call driver init functions */
        GPIO_init();
    
        /* Configure GPIO to output, and starts low */
        GPIO_setConfig(Board_DIO21, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
    
        /* Additional IO configuration for GPIO output */
        IOCPinTypeGpioOutput( IOID_21 );
    
        /* While loop to continuously toggle GPIO */
        while (1) {
    
            GPIO_writeDio(Board_DIO21, 0);
            sleep(time);
            GPIO_writeDio(Board_DIO21, 1);
        }
    }

    请告诉我这是否有帮助!  

    谢谢!  

    Isaac

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

    具体而言、我将在 board.h 中尝试更改引脚6和7、以匹配引脚12和15。 在 CC2640R2_LAUNCHXL.h 中、它们设置为 PIN_RLEG 和 GLED:  

    #define CC2640R2_LAUNCHXL_DIO12         ioID_12
    #define CC2640R2_LAUNCHXL_DIO15         ioID_15
    #define CC2640R2_LAUNCHXL_PIN_RLED        ioID_6
    #define CC2640R2_LAUNCHXL_PIN_GLED        ioID_7
     
    我还需要使用引脚13和14来代替之前用于执行的引脚6和7:
    #define CC2640R2_LAUNCHXL_PIN_BTN1        ioID_13
    #define CC2640R2_LAUNCHXL_PIN_BTN2        ioID_14
    这些都来自 SDK 的未经更改的文件
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jordan、  

    您能解释一下将引脚12和15匹配是什么意思吗? 例如、您是否希望 GPIO 6在 GPIO 12切换时进行切换?  

    为此、请在 CC2640R2_LAUNCHXL.h 中将 IOID_xx 更改为所需的 GPIO 输出 然后、我建议将 CC2640R2_LAUNCHXL_xxx 名称更改为 DIO #。 之后、更改 board.h 文件以表示新的 DIO 名称。 例如:  

    CC2640R2_LAUNCHXL.h

    //#define CC2640R2_LAUNCHXL_PIN_BTN1              IOID_13 //OLD
    #define CC2640R2_LAUNCHXL_DIO13                 IOID_13 //Updated

    Board.h

    //#define Board_PIN_BUTTON0       CC2640R2_LAUNCHXL_PIN_BTN1 //Old
    //#define Board_PIN_BTN1          CC2640R2_LAUNCHXL_PIN_BTN1 //Old
    
    #define Board_DIO13             CC2640R2_LAUNCHXL_DIO13 //NEW

    此外、在您的项目上运行搜索、以验证所需的引脚未在其他地方初始化/分配。 可以通过切换 Ctrl+h 并在"文件搜索"中查找 IOID_#值来执行此操作。  

    如果这有帮助、请告诉我。  

    谢谢!  
    Isaac

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

    抱歉、现在还不清楚、只是我们希望引脚6和7的功能匹配引脚12和15。 我们之前在定制 PCB 上使用了一个多路复用器、最近我们增加了另一个。 引脚12和15位于原始元件上、6和7的功能相同、但在新添加的多路复用器上

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

    您好、Jordan、  

    感谢您的耐心。  

    遗憾的是、GPIO/引脚驱动器不提供引脚多路复用 API。 请参阅 PIN_setPortOutputValue 函数。 该功能可以通过缓冲器同时切换 GPIO。 此外、请参阅 链接的 E2E 主题。  

    请告诉我这是否有帮助!

    谢谢!  

    Isaac