我正在做一个项目来开发一个ble通信,但是我在初始化和理解ble的返回框架时遇到了一些麻烦。
在降低cs,测试报头(0x0A,0x00,0x00,0x00,0x00)并使用HAL_SPI_TransmitReceive直接在hci_reset (0x01,0x03,0x0C,0x00)之后发送之后,我想从ble中读取返回值。
因此,再次降低cs,测试报头(0x0B,0x00,0x00,0x00,0x00),并使用HAL_SPI_TransmitReceive发送虚拟数据。我得到这个帧: 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00。
但根据我到目前为止的理解,我应该得到这样的结果:0x04,0x0E,0x04,0x01,0x03,0x0C,0x00。
有人能指出我哪里错了吗?
发布于 2020-07-08 23:02:11
差不多解决了。
实际上,我更改了代码中的一些点,最终从ble中检索到了与我等待的数据相对应的数据。
我之前所做的是在收到来自ble的右标头后关闭帧。然后发送报头到write命令,随后发送命令。
这就是我应用的程序:信息通信spi命令(写入):·如果header_slave=0x02和header_slave1>0,则打开CS并在TransmitReceive▪中发送header_master5={0x0a,0,0,0,0}·send命令·close CS◦else·关闭CS·转到打开CS
信息通信spi请求(读取):·等待从ble退出打开CS并在TransmitReceive中发送header_master5={0x0b,0,0,0,0}·if header_slave=0x02◦header_slave3>0◦send (header_slave3) dummies◦close CS·else◦close CS◦goto Open CS
希望这能帮助到一些人。
现在我面临着另一个问题。我在发送命令后没有收到中断,所以我做了轮询来捕获我需要的帧。有什么解决方案吗?
https://stackoverflow.com/questions/62718972
复制相似问题