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.

[参考译文] CCS/CC3220S-LAUNCHXL:能否访问主线程与从主线程启动的 GPIO 回调函数之间的全局变量?

Guru**** 2551110 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/949752/ccs-cc3220s-launchxl-can-i-access-global-variable-between-main-thread-and-the-gpio-callback-function-which-is-initiated-from-the-main-thread

器件型号:CC3220S-LAUNCHXL

工具/软件:Code Composer Studio

您好!

我已经从 main 函数启动了 main 线程。

我从主线程启动了 GPIO 回调函数。

在主线程中,我仅创建了 TCP 套接字,并通过 GPIO 回调,我希望使用 sl_send()函数通过套接字发送1字节数据。

套接字 ID 是全局变量。

但我无法通过 GPIO 回调函数发送数据、数据卡死。

请建议。

谢谢、此致、

Jasmin

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

    您好 Jasmin、

    您应该能够访问 GPIO 回调函数中的全局变量。 但是、不应在中断上下文中调用 sl_Send()等阻塞 API。

    相反、请使用您的 GPIO 回调函数发布到消息队列、增加信号量、解锁互斥量或执行类似的 RTOS 对象交互、以指示正在运行的线程之一执行 sl_Send。 请查看 SDK 中的 MQTT_CLIENT 演示、了解如何根据 GPIO 输入执行发送操作的示例。

    如果您需要更多说明或对执行 sl_Send 以响应 GPIO 有进一步的问题、请告诉我。

    此致、

    Michael