你好,
有人知道如何使用三个可用的软件中断之一(RESERVED21/22/23_IRQn)来控制程序的流程吗?我有一个基于蓝牙串行服务(一个RX,一个TX特性)的非常轻和简单的JSON协议。一旦在RX特性上接收到完整的JSON,我想触发一个软件中断,导致对接收到的数据进行处理,并根据TX特性发送一个答案。
我正在使用NVIC_*函数设置优先级和启用中断,但还没有找到一种方式注册回调,并实际使用它在我的软件。是否有使用这些中断的推荐方法/良好实践,我是否应该使用唤醒控制器(从板载按钮和传感器中断引脚的gpios工作得很好),你能给我一个参考实现吗?目前它仍然是有点太多的尝试和错误:-)
非常感谢,并致以良好的问候,
乔斯
嗨jsageder,
感谢您在我们的公共蓝牙论坛上提出的问题。不能使用中断-如果你参考数据表,你也不会找到这种类型的中断。
为什么不使用对话串行端口服务(DSPS)应用程序?
//www.xmece.com/亚博电竞菠菜products/dialog-serial-port-service-dsps
DSPS支持硬件流控制(RTS/CTS)。
谢谢,PM_Dialog
你好,
非常感谢你的回答。DA14531是主要的微控制器在我们非常低的成本应用。它需要通过I2C反复收集一组传感器值,存储它们,如果连接可用,则通过BLE上传它们。在建立下一个BLE连接之前,内存中可能存在各种传感器值集,因此我试图实现某种协议/缓冲机制,在这种机制下,软件中断将非常方便。但我会找到另一种方法
最好的问候,
约瑟夫
嗨,约瑟夫,
很抱歉我回复晚了。如前所述,SW中断不可用。也许下面的示例代码可以帮助你:DA14531-DA14585-586读取I2C加速度计BLE
谢谢,PM_Dialog
你好,
感谢您提供的示例,我想这就是我之前用于编写代码的示例。
当广告开始时,我启动一个easy_timer,每秒读取10次加速计值,寻找特定模式,每次检测到它时,我将一个值保存到外部内存中。一旦BLE连接建立,从内存中收集的所有值都被上传到应用程序中。
Br,
J
嗨,约瑟夫,
谢谢你的反馈和接受我的回答。如果您有任何后续问题,请rai一个新的论坛主题!
谢谢,PM_Dialog