我想用两个CH582F分别当主机和从机,主机能够发送数据控制从机IO口,该怎么实现?

是通过增加事件还是判断通过接收数据?要修改蓝牙协议栈吗?

我看事件和GAP都有对数据的处理,他们是什么关系?用哪一种?


标题中提到了通过主机发送数据进行控制IO。首先需要判断的从机有没有接收到主机发送的数据。收到数据之后再,进行IO的控制不论是对收到的数据进行判断或者是加事件都按照客户的逻辑。

主机发数据接口:

image.png

从机收数据接口:

image.png


现在的想法是开启蓝牙主机的串口1,串口接收数据,主机根据数据发送相应指令到从机,从机接收数据判断格式执行相应操作,能否实现?我看在BLE_uart资料说串口是透传模式,那数据从串口到蓝牙的哪里去了?能不能把串口数据再发给从机,主机起中转作用?


主机能否解析从串口接收的数据?


有没有主机使用串口的例程,我移植从机串口例程把文件复制过来但是显示ble_uart_service.h不存在


主机可以通过串口接收的数据发到从机。串口接收到对应的数据之后根据上述提供的截图的位置进行数据的发送,串口部分可以参考我们的串口例程。目前暂时没有central+uart的例程,有需要可以自行移植。

主循环里的app_uart_process()一直在查询uart_rx_flag,uart_rx_flag为1时会调用tmos_start_task(Peripheral_TaskID, UART_TO_BLE_SEND_EVT, 2);任务将串口接收到的数据通过蓝牙发送出去,uart_rx_flag在串口中断中置1。

串口接收的数据会放到app_uart_rx_fifo,



只有登录才能回复,可以选择微信账号登录