找回密码
 立即注册

微信扫码登录

查看: 90|回复: 1

[BLE Mesh] 蓝牙mesh可以打断主函数的数据包判断函数

[复制链接]

3

主题

4

回帖

43

积分

英勇黄铜

积分
43
发表于 7 天前 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
SDK及版本: telink_sig_mesh
本帖最后由 we_2946009406 于 2025-3-27 16:12 编辑

·背景:蓝牙指令通过泰凌微mesh/main.c中的 irq_handler() 中的 irq_blt_sdk_handler() 接收蓝牙指令,解析自定义数据包放在主循环的loop中,解析完后执行对应应用层的for循环

·问题:当for循环过长时,尽管在中断中已接收到蓝牙指令,但需要等待当前应用层的for循环结束后,运行到下一轮的主循环loop时,才能解析新的数据包,执行新的for循环。尝试添加全局标志位,在for循环中若判断到标志位置位则退出循环。测试了app.c中的 app_event_handler() 、mesh_common.c中的 mesh_rc_data_layer_access_cb(),均可以顺利判断并置位标志位,但该回调函数似乎不能打断主循环,因此同样需要等待for循环结束才能让标志位置位

·需求:是否有可以打断主循环的函数能让我判断在里面判断一下蓝牙数据包的opcode,用于中断形式地置位标志位

5

主题

211

回帖

721

积分

版主

积分
721
发表于 3 天前 | 显示全部楼层
你在中断里面就可以这么做啊,主循环会被中断打断
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-4-3 23:52 , Processed in 0.085830 second(s), 22 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表