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.

[参考译文] CC1312R:无法修改 CC1312R 中 GPIO 的值

Guru**** 2558250 points
Other Parts Discussed in Thread: CC1312R, LAUNCHXL-CC1312R1

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/711372/cc1312r-unable-to-modify-value-of-gpios-in-cc1312r

器件型号:CC1312R

您好!

     我在项目中使用 CC1312R 的 SPI 接口。 对于片选,我正在尝试将片选 GPIO 的值从高电平更改为低电平,但 GPIO 的值不会改变。

     为了进行验证,我从 TI 资源管理器加载了 gpiointerrupt 项目,虽然我能够更改 LED 的状态,但当我更改项目中的 GPIO (如 DIO1或 DIO22)时,GPIO 值没有改变。

    GPIO 的其他配置是相同的。 请告诉我是否需要更多信息。  

此致、

Omkar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在引脚上执行了 GPIO_setConfig()?

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

    您好、

             是的、我已经在引脚上完成了 GPIO_setConfig()。 我在 gpiointerrupt 项目中进行了以下更改:

    /*配置 LED 和按钮引脚*/
    GPIO_setConfig (IOID_22、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); 
    GPIO_setConfig (Board_GPIO_LED1、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
    //GPIO_setConfig (Board_GPIO_BUTTON0、GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_INT_FALLING);
    
    /*打开用户 LED */
    GPIO_WRITE (IOID_22、Board_GPIO_LED_ON);
    GPIO_WRITE (IOID_22、Board_GPIO_LED_OFF); 

    通过在上述语句中设置断点(其中我要更改 IOID_22的值),我将测量 LAUNCHXL-CC1312R1上 DIO22的电压。 DIO22的电压电平没有变化。 它保持为0。

    请建议我是否不知道是否有其他配置。

    此致、

    Omkar

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

    这是我不知道的几件事:

    在 CC1312R1_KAUNCHXL.c 文件中、您有下表:

    GPIO_PinConfig gpioPinConfigs[]={
    /*输入引脚*/
    GPIOCC26XX_DIO_13 | GPIO_DO_NOT _CONFIG、/*按钮0 */
    GPIOCC26XX_DIO_14 | GPIO_DO_NOT _CONFIG、/*按钮1 */
    
    GPIOCC26XX_DIO_15 | GPIO_DO_NOT _CONFIG、// CC1312R1_LAUNCHXL_SPI_MASTER_READY *
    GPIOCC26XX_DIO_21 | GPIO_DO_NOT _CONFIG、// CC1312R1_LAUNCHXL_SPI_SLAVE_READY *
    
    /*输出引脚*/
    GPIOCC26XX_DIO_07 | GPIO_DO_NOT _CONFIG、/*绿色 LED *
    GPIOCC26XX_DIO_06 | GPIO_DO_NOT _CONFIG、/*红色 LED *
    
    /* SPI 闪存 CSn *
    GPIOCC26XX_DIO_20 | GPIO_DO_NOT _CONFIG、
    
    /* SD CS */
    GPIOCC26XX_DIO_21 | GPIO_DO_NOT _CONFIG、
    
    /* Sharp Display - GPIO 配置将在 Display 文件中完成*/
    GPIOCC26XX_DIO_24 | GPIO_DO_NOT _CONFIG、/* SPI 芯片选择*
    GPIOCC26XX_DIO_22 | GPIO_DO_NOT _CONFIG、/* LCD 电源控制*
    GPIOCC26XX_DIO_23 | GPIO_DO_NOT _CONFIG、/* LCD 使能*/
    
    }; 

    下表列出了相应的.h 文件:

    typedef 枚举 CC1312R1_LAUNCHXL_GPIOName{
    CC1312R1_LAUNCHXL_GPIO_S1 = 0、
    CC1312R1_LAUNCHXL_GPIO_S2、
    CC1312R1_LAUNCHXL_SPI_MASTER_READY、
    CC1312R1_LAUNCHXL_SPI_SLAVE_READY、
    CC1312R1_LAUNCHXL_GPIO_LED_GREEN、
    CC1312R1_LAUNCHXL_GPIO_LED_RED、
    CC1312R1_LAUNCHXL_GPIO_SPI_FLASH_CS、
    CC1312R1_LAUNCHXL_SDSPI_CS、
    CC1312R1_LAUNCHXL_GPIO_LCD_CS、
    CC1312R1_LAUNCHXL_GPIO_LCD_POWER、
    CC1312R1_LAUNCHXL_GPIO_LCD_ENABLE、
    CC1312R1_LAUNCHXL_GPIOCOUNT
    }CC1312R1_LAUNCHXL_GPIOName; 

    由于 GPIO 驱动程序使用索引、因此必须使用与要使用的 DIO 相对应的名称。  

    在这里、GPIOCC26XX_DIO_22映射到 CC1312R1_LAUNCHXL_GPIO_LCD_POWER、您必须在代码中使用该名称:

    GPIO_setConfig (CC1312R1_LAUNCHXL_GPIO_LCD_POWER、GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、
    我是按照你的建议做的、现在工作正常。 因此、我假设如果我必须使用上表中未提及的 GPIO、我必须按相同的顺序包含它们。 如果我被误解了、请更正我的错误。

    谢谢、此致、
    Omkar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确、因为它基于索引、所以您必须按相同的顺序列出它们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、

    感谢您的回答!

    此致、
    Omkar