平面设计网站排行榜,沈阳开发网站的地方,建筑人才网市场,国内做的好看的网站设计在开发过程中遇到了以下问题#xff0c;记录一下
1.在与ios手机连接后#xff0c;手机app使能notify#xff0c;设备与手机通过write和notify进行数据交换#xff0c;但是在连接传输数据一端时间后#xff0c;设备收到write命令后不能发出notify命令#xff0c;打印错误…在开发过程中遇到了以下问题记录一下
1.在与ios手机连接后手机app使能notify设备与手机通过write和notify进行数据交换但是在连接传输数据一端时间后设备收到write命令后不能发出notify命令打印错误码180 0xB4,GATT_ERR_DATA_PENDING_DUE_TO_SERVICE_DISCOVERY_BUSY,设备发送notify失败的原因是ios蓝牙master主机正在发现蓝牙服务此时不允许发送notify数据。
解决办法出现这个错误后将发送notify失败的数据保存到一个全局数组中并保存数据长度设置一个标记位为1记录当前的系统时间将此在主循环中轮询如果检测到这个标记位为1且时间过了500ms之后再重发一次之前notify失败的数据就可以成功发送了。
2.配置蓝牙串口唤醒口cpu_set_gpio_wakeup (GPIO_WAKEUP_MODULE, Level_Low, 1); GPIO_WAKEUP_MODULE_HIGH;设置成低电平唤醒上拉每次进入睡眠都会IO抖动造成毛刺用逻辑分析仪抓TX、RX、CTS和RTS四根线如下图 而如果配置成cpu_set_gpio_wakeup (GPIO_WAKEUP_MODULE, Level_High, 1); GPIO_WAKEUP_MODULE_LOW;则不会出现这个问题 但是我们的串口发送数据的时序已经确定是低电平唤醒所以会遇到图一的问题原因是上拉10K的控制中不要使用PC0~PC7在deepsleep retention wakeup时会有短时间的抖动产生毛刺而我们用的串口IO和唤醒IO恰好是这几个。 解决办法如果在条件允许的情况下更改硬件连线需要将唤醒蓝牙的IO换成PA或者PB的IO口不要用PC的IO口如果不能修改硬件那么就直接不用PM_DEEPSLEEP_RETENTION_ENABLE深度睡眠模式将其定义改成0从而使用suspend去做低功耗功耗在50uA左右深度睡眠模式功耗在5uA左右