CH58x最大从机数量是3吗?

 bleConfig_t  cfg;

cfg.ConnectNumber = (PERIPHERAL_MAX_CONNECTION & 3) | (CENTRAL_MAX_CONNECTION << 2)

从CH58xBLE_LIB.h里面查看bleConfig_t 的定义

uint8_t ConnectNumber;          // Connect number,lower two bits are peripheral number,followed by central 

似乎从机和主机的数量最大只能是3?


 

可以连接更多,CH582我们实测可以连接8个,连接多个数量的时候,对RAM消耗是比较大的,在收发数据的时候也会消耗RAM,因此可以根据RAM的大小来判断。


我需要链接5个,那ConnectNumber这个参数怎么改呢?
参考多连接例程,尝试PERIPHERAL_MAX_CONNECTION;然后配好相关的这5个连接的参数设置和回调,发现最多只能设置3个。
方便发一份demo给我吗?

@TECH_Lpc


修改这个参数:

image.png

可以先查看是否可以连接成功。

回调函数模仿已有的代码进行添加。

目前暂无专门的5连接demo提供。image.png


您可能误会我的意思了,我需要设置CH582M作为peripheral,不是central。
peripheral在这里设置数量。

@TECH_Lpc


111706090242906383.png

1706090243177151.png

1706090243904490.png

CH58xBLE_LIB 写了peripheral和central数量占用2bit,也就是3个。
在MCU.C,直接把超过3的值去掉了。
而且我测试发现, PERIPHERAL_MAX_CONNECTION=5;实际只能被连接1个; 0000 0101
         PERIPHERAL_MAX_CONNECTION=7;实际能被连接3个; 0000 0111
我不知道哪个地方还能修改数量。还是说peripheral只能小于3



您好,如果是作为从机peripheral被主机连接,则最多只可以被三个主机连接,这个协议栈已经固定了的。可以提供一下具体的功能需求。如果是需要多连接的情况,可以考虑中继的方式处理。或者走2.4G的方式。


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