CH579的HeartRate例程中,什么时候自动发送NOTIFY

手机运行WCH_BLE2U助手,与Name是“Heart Rate Sensor”,有下面的一个服务,但进入并使能“接收通知数据”,无数据显示。点击“读取”能返回“14”。

请问,这个NOTIFY的属性,为什么不自动返回数据?如何才能实现自动返回数据?

1111.jpg

你换BLE调试助手app试试,你这个app可能是没有打开从机的通知使能。


WCH_BLE2U助手是可以收到其他例程的notify,应该和手机APP没有关系。我没有看懂例程,它发送notify,是不是有什么前提条件。
谢谢,再帮忙看看。

刚刚实验了10多分钟,只收到1次notify。





bStatus_t HeartRate_MeasNotify(uint16_t connHandle, attHandleValueNoti_t *pNoti)
{
    uint16_t value = GATTServApp_ReadCharCfg(connHandle, heartRateMeasClientCharCfg);

    // If notifications enabled
    if(value & GATT_CLIENT_CFG_NOTIFY)
    {
        // Set the handle
        pNoti->handle = heartRateAttrTbl[HEARTRATE_MEAS_VALUE_POS].handle;

        // Send the notification
        return GATT_Notification(connHandle, pNoti, FALSE);
    }

    return bleIncorrectMode;
}

你把这个判断屏蔽掉,就可以不用管主机是否开启了通知



收到,谢谢。问题的截图是Battery level,按你的思路,也是可行的。

其实是想知道为什么进行判断if(level< battLevle)

? level = battMeasure();


? // If level has gone down

? if (level < battLevel)

? {

? ? // Update level

? ? battLevel = level;


? ? // Send a notification

? ? battNotifyLevel();

? }



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