hometown 发表于 2021-11-18 10:47

BlueRNG-LP关闭广播后,虚拟定时无法唤醒

<p>硬件:<span style="font-size:9pt"><span style="font-family:Arial-BoldMT"><span style="color:#002052"><span style="font-weight:bold">STEVAL-IDB011V开发板</span></span></span></span></p>

<p>软件:开启两个虚拟定时器,一个定时读取外设&nbsp; &nbsp;一个定时关闭广播</p>

<p>sensorTimerHandle.callback = SensorUpdateTimeoutCB; &nbsp;<br />
&nbsp; ret = HAL_VTIMER_StartTimerMs(&amp;sensorTimerHandle, acceleration_update_rate);<br />
&nbsp; if (ret != BLE_STATUS_SUCCESS) {<br />
&nbsp; &nbsp; PRINTF(&quot;HAL_VTIMER_StartTimerMs() failed; 0x%02x\r\n&quot;, ret);<br />
&nbsp; &nbsp; return ret;<br />
&nbsp; } else {<br />
&nbsp; &nbsp; sensorTimer_expired = FALSE;<br />
&nbsp; }<br />
&nbsp; broadcastTimerHandle.callback = broadcastUpdateTimeoutCB;<br />
&nbsp; ret = HAL_VTIMER_StartTimerMs(&amp;broadcastTimerHandle, broadcast_update_rate);<br />
&nbsp; if (ret != BLE_STATUS_SUCCESS) {<br />
&nbsp; &nbsp; PRINTF(&quot;HAL_VTIMER_StartTimerMs() failed; 0x%02x\r\n&quot;, ret);<br />
&nbsp; &nbsp; return ret;<br />
&nbsp; } else {<br />
&nbsp; &nbsp; broadcastTimer_expired = FALSE;<br />
&nbsp; }</p>

<p>while循环使用HAL_PWR_MNGR_Request(POWER_SAVE_LEVEL_STOP_WITH_TIMER , wakeupIO, &amp;stopLevel); 休眠状态</p>

<p>当static uint16_t acceleration_update_rate = 4000;&nbsp; &nbsp; static uint16_t broadcast_update_rate = 1000; 循环时间设置为这样可以正常关闭广播切虚拟时间正常唤醒</p>

<p>当static uint16_t acceleration_update_rate = 2000;&nbsp; &nbsp; static uint16_t broadcast_update_rate = 1000;&nbsp;循环时间设置为这样可以正常关闭广播切但是<strong> 虚拟时间无法唤醒</strong></p>

<p>&nbsp;</p>

littleshrimp 发表于 2021-11-18 17:46

<p>&ldquo;循环时间设置为这样可以正常关闭广播切但是&nbsp;虚拟时间无法唤醒&rdquo;是两个回调函数都不会执行吗?</p>

hometown 发表于 2021-11-18 19:15

littleshrimp 发表于 2021-11-18 17:46
&ldquo;循环时间设置为这样可以正常关闭广播切但是&nbsp;虚拟时间无法唤醒&rdquo;是两个回调函数都不会执行 ...

<p>&nbsp;&nbsp;&nbsp;&nbsp;后面我将虚拟时间设置为500ms,2分钟后关闭广播就可以正常运行了. 这个问题暂时还没时间去深究.</p>

<p>&nbsp; &nbsp; 咱这边有没透传的例子,与手机APP发送数据,我需要自定义协议</p>

littleshrimp 发表于 2021-11-19 10:49

hometown 发表于 2021-11-18 19:15
&nbsp;&nbsp;&nbsp;&nbsp;后面我将虚拟时间设置为500ms,2分钟后关闭广播就可以正常运行了. 这个问题暂时 ...

<p>你看一下这个例程能不能满足你的要求</p>

<p> &nbsp;</p>

hometown 发表于 2021-11-19 15:50

littleshrimp 发表于 2021-11-19 10:49
你看一下这个例程能不能满足你的要求

&nbsp;

<p>Hi&nbsp; 版主:</p>

<p>&nbsp; &nbsp; 非常感谢,我刚刚试了下使用BLE_SerialPort里的Server可以连接手机发送数据.&nbsp;</p>

<p>我的理解是:我的产品是被连接的对象,按道理应该是Client,是不是需要移植Client这块代码,但我试了Client,手机无法连接.</p>

<p>&nbsp;</p>

<p>感谢!</p>

lucienkuang 发表于 2021-11-19 16:17

楼主,没法测试的到您描述的问题点。能否直接上传一个在开发板上可以验证这个问题的测试代码。

lucienkuang 发表于 2021-11-19 16:21

hometown 发表于 2021-11-19 15:50
Hi&nbsp; 版主:

&nbsp; &nbsp; 非常感谢,我刚刚试了下使用BLE_SerialPort里的Server可以连接手机发 ...

<p>您的理解不对(我的产品是被连接的对象,按道理应该是Client)。 您的产品,对于手机来说,是提供服务的,比方说提供电池电量服务,提供传感器的一些数据给手机。连接和Client和server 没有关系,一个主设备或者从设备都可以同时做Client和server。</p>

hometown 发表于 2021-11-19 16:26

lucienkuang 发表于 2021-11-19 16:21
您的理解不对(我的产品是被连接的对象,按道理应该是Client)。 您的产品,对于手机来说,是提供服务的 ...

<p>Hi&nbsp;<a href="https://home.eeworld.com.cn/space-uid-1031535.html" target="_blank">lucien</a>:</p>

<p>&nbsp; &nbsp; 非常感谢你的答疑.</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>

lucienkuang 发表于 2021-11-19 16:29

hometown 发表于 2021-11-19 15:50
Hi&nbsp; 版主:

&nbsp; &nbsp; 非常感谢,我刚刚试了下使用BLE_SerialPort里的Server可以连接手机发 ...

<p>A设备广播可连接广播,另一个B设备扫描,并发起连接。则连接后,A设备成为了从机,B设备成为了主机。从机Radio活动的时序得以主机的时间为参考。</p>
页: [1]
查看完整版本: BlueRNG-LP关闭广播后,虚拟定时无法唤醒