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.

[参考译文] CC1350:DIO15上的接收中断

Guru**** 2551110 points
Other Parts Discussed in Thread: CC1350, OPT3001

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/769326/cc1350-receive-interrupt-on-dio15

器件型号:CC1350
主题中讨论的其他器件: OPT3001

你(们)好

我正在尝试使用 Sensors devpack 运行 CC1350 launhpad 示例。
我正在使用 TI 驱动程序 i2copt3001.c 从传感器开发包中成功读取 Lux  

但是、我不能实现中断。 我已经在中断处理程序中放置了断点、并替换了:

GPIOCC26XX_DIO_15 | GPIO_DO_NOT _CONFIG、 

其中:

GPIOCC26XX_DIO_15 | GPIO_CFG_IN_INT_INT_RISING、 

并将所需结构添加到 CC1350_LAUNCHXL.c:

OPT3001_Object OPT3001_object[CC1350_LAUNCHXL_OPT3001COUNT;

const OPT3001_HWAttrs OPT3001_hwAttrs [CC1350_LAUNCHXL_OPT3001COUNT ={
{
#ifdef BOOSTXL_BASSENSORS
slaveAddress = OPT3001_SA1、
#else // BOOSTXL_SENSORS
slaveAddress = OPT3001_SA4
、#endif
gpioIndex = CC1350_LAUNCHXL_OPT3001_INT、
}、
};

const OPT3001_Config OPT3001_CONFIG[]={
{
hwAttrs =&OPT3001_hwAttrs[0]、
.object =&OPT3001_object[0]、
}、
{NULL、NULL}、
}; 

其中:

/*!
*@def CC1350_LAUNCHXL_GPIOName
*@GPIO 名称的简短枚举
*/
typedef 枚举 CC1350_LAUNCHXL_GPIOName{
CC1350_LAUNCHXL_GPIO_S1 = 0、
CC1350_LAUNCHXL_GPIO_S2、
CC1350_LAUNCHXL_OPT3001_INT、
CC1350_LAUNCHXL_SPI_SLAVE_READY、
CC1350_LAUNCHXL_GPIO_LED_GREEN、
CC1350_LAUNCHXL_GPIO_LED_RED、
CC1350_LAUNCHXL_GPIO_TMP116_EN、
CC1350_LAUNCHXL_GPIO_SPI_FLASH_CS、
CC1350_LAUNCHXL_SDSPI_CS、
CC1350_LAUNCHXL_GPIO_LCD_CS、
CC1350_LAUNCHXL_GPIO_LCD_POWER、
CC1350_LAUNCHXL_GPIO_LCD_ENABLE、
CC1350_LAUNCHXL_GPIOCOUNT
}CC1350_LAUNCHXL_GPIOName; 

但是、我不能在中断例程中停止...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否尝试在勒克斯信号上触发? 它是否足够高、足以触发输出? 您是否尝试过数字读取?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否尝试在勒克斯信号上触发?

    是的

    它是否足够高、足以触发输出?

    是-我测量过  

    您是否尝试过数字读取?

    是的、我可以从器件读取

    如图所示、我将上限设置为400.0、测量值为3206.3999。 我仍然没有收到任何中断...

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

    您能否指定哪个示例、您在哪些文件中修改哪些行?

    我在  中和找到的板级配置文件中查看了 OPT3001的代码

    #ifdef BOOSTXL_BASSENSORS
    #define OPT3001_INT_PIN GPIOCC26XX_DIO_27
    #else // BOOSTXL_SENSORS
    #define OPT3001_INT_PIN GPIOCC26XX_DIO_15
    #endif 

    指示该示例中实际使用的是 DIO15

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

    你(们)好

    我还在我的示例中使用了 DIO_15。 正如我在原始帖子中提到的:

    但是、我不能实现中断。 我已经在中断处理程序中放置了断点、并替换了:

    1
    GPIOCC26XX_DIO_15 | GPIO_DO_NOT_CONFIG,

    其中:

    1
    GPIOCC26XX_DIO_15 | GPIO_CFG_IN_INT_RISING,

    在您的帖子中、我查看了 CC1350_LAUNCHXL.c 并发现它也使用了 DIO_15、但在示例项目中也有:

    GPIO_PinConfig gpioPinConfigs[]={
    (笑声)
    OPT3001_INT_PIN | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_INT_FALLING、
    (笑声)
    }; 

    那么、当我更改时

    GPIOCC26XX_DIO_15 | GPIO_CFG_IN_INT_INT_RISING、 

    使用

    GPIOCC26XX_DIO_15 | GPIO_CFG_IN_pu | GPIO_CFG_IN_INT_FALLING 

    我设法解决了它并在中断例程内的断点处停止。

    非常感谢:)