求助,CH579F無法被多個手機同時連接

我用過Peripheral和CentPeri例程都無法被多個手機同時連接

已經(jīng)將config.h的PERIPHERAL_MAX_CONNECTION改為3個

現(xiàn)象是只要有一個手機連接上,CH579就沒有了廣播,直接去連接也無法連上。


這種問題都不是問題,你連主機從機都沒搞清楚。手機當(dāng)然只能連一個了,PERIPHERAL_MAX_CONNECTION是指該藍牙作為主機時最多能連接的從機數(shù)是3,你的明白?


這種問題都不是問題,你連主機從機都沒搞清楚。手機當(dāng)然只能連一個了,PERIPHERAL_MAX_CONNECTION是指該藍牙作為主機時最多能連接的從機數(shù)是3,你的明白?


我還是沒明白,如何修改才能讓多個手機同時連接一個藍牙設(shè)備呢?



除了將 PERIPHERAL_MAX_CONNECTION 改為3外

還需要在每次連接的事件里判斷如果已經(jīng)建立的連接沒有達到最大的連接數(shù), 再次手動開啟廣播.


樓上正解,已經(jīng)修改以下地方的代碼,可以多個手機同時連接藍牙設(shè)備了

原代碼:

static void Peripheral_LinkEstablished( gapRoleEvent_t * pEvent )

{

? gapEstLinkReqEvent_t *event = (gapEstLinkReqEvent_t *) pEvent;

??

? // See if already connected

? if( peripheralConnList.connHandle != GAP_CONNHANDLE_INIT )

? {

? ? GAPRole_TerminateLink( pEvent->linkCmpl.connectionHandle );

? ? PRINT( "Connection max...\n" );

? }

? ...

因為定義peripheralConnList時就定義了一個connHandle,當(dāng)?shù)谝粋€連接建立時peripheralConnList.connHandle已經(jīng)被第一個連接使用,所以當(dāng)?shù)诙€連接建立時peripheralConnList.connHandle?必然!= GAP_CONNHANDLE_INIT ,導(dǎo)致第二個連接被終止。

解決的方法就是修改定義

static peripheralConnItem_t peripheralConnList[PERIPHERAL_MAX_CONNECTION];

當(dāng)連接建立時遍歷peripheralConnList[PERIPHERAL_MAX_CONNECTION],將新連接的event->connectionHandle給未使用的peripheralConnList[i].connHandle。

然后判斷是否已經(jīng)達到最大的連接數(shù),是否開啟廣播。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频