關(guān)于CH579使用multiCentral無(wú)法獲取到notify的問題

CH579使用multiCentral無(wú)法獲取到notify數(shù)據(jù),使用CentPeri例程可以獲取到notify,multiCentral添加了notify部分還是不行,請(qǐng)問有沒有multiCentral獲取notify的例程呢?


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

接收不到notify信息的原因是首先notify的case例程中是沒有的,另外加上了之后,還需要要使能notify,這個(gè)使能可以在從機(jī)端加也可以主機(jī)端加,在主機(jī)端加的話,直接按照Central的例程寫就行了,在從機(jī)端加可以添加這個(gè)函數(shù):

uint8 enable_notify(uint16 connection_handle,uint8 enable) {

? ? uint16 cccd = 0;

? ? if(enable) {

? ? ? ? cccd |= GATT_CLIENT_CFG_NOTIFY;

? ? }else {

? ? ? ? cccd &= ~GATT_CLIENT_CFG_NOTIFY;

? ? }

? ? return GATTServApp_WriteCharCfg( connection_handle, simpleProfileChar4Config, cccd );

}

建立連接(Peripheral_LinkEstablished)函數(shù)里調(diào)用這個(gè)函數(shù)就可以。


按照Central的例程還是接收不到notify,無(wú)法進(jìn)入到centralProcessGATTMsg( gattMsgEvent_t *pMsg )函數(shù)的else if( pMsg->method == ATT_HANDLE_VALUE_NOTI){}中

image.png


你這只是把notify的case添加進(jìn)來(lái)了,但是notify沒有使能啊,當(dāng)然還是進(jìn)入不了這個(gè)case。需要使能notify,可以在從機(jī)中加,如上貼方法加,也可以在主機(jī)中加,central的例程就中有這個(gè)使能,如下圖:

emobile_2022-03-22_14-30-22.png


主機(jī)發(fā)送tmos_start_task( centralTaskId, START_WRITE_CCCD_EVT, DEFAULT_WRITE_CCCD_DELAY);

沒辦法進(jìn)入Central_ProcessEvent( uint8 task_id, uint16 events )函數(shù)執(zhí)行if ( events & START_WRITE_CCCD_EVT )這部分

image.png

image.png


例程已發(fā),請(qǐng)查收。


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

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