sujingliang 发表于 2024-9-26 15:02

【NUCLEO-WB09KE评测】4、也谈BLE从机配置及BLE点灯

本帖最后由 sujingliang 于 2024-9-26 15:23 编辑

<p><span style="font-size:18px;"><strong>目标</strong></span></p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 其实对于用STM32CubeMX从头配置工程,我是抗拒的,因为之前被它折腾得太惨。每次用MX开启一个新的工程,感觉就像一次新的历险。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 还好NUCLEO-WB09KE的配置不用考虑mpu、xspi、EXTMEM_MANAGER等等拦路虎,感觉有得搞,并且前面大佬已经成功配置过了。</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 那还等什么开干。</p>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>一、配置</strong></span></p>

<p><span style="font-size:16px;">我尽量贴的详细些</span></p>

<p><strong>1、RCC:</strong><span style="color:#d35400;"><span style="font-size:16px;"><strong>一定要重视RCC</strong></span></span></p>

<div style="text-align: center;"></div>

<p>这里选择了HSE、LSE,这意味着高速晶振和低速晶振都用是外部晶振。所以HSI、LSI就不要在时钟配置中做为时钟来源,否则肯定是不起振的。</p>

<p>时钟图:<span style="color:#d35400;"><strong>要和RCC对应上</strong></span></p>

<div style="text-align: center;"></div>

<p><br />
2、SYS配上吧</p>

<div style="text-align: center;"></div>

<p><br />
<strong>3、RADIO_TIMER</strong></p>

<p>配置WIN32_BLE时有提示RADIO_TIMER需要先配置。参数默认不做修改。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p><strong>4、RADIO</strong></p>

<p>配置原因同上</p>

<div style="text-align: center;"></div>

<div><strong>5、UART1配置上,用来打日志</strong></div>

<div>&nbsp;</div>

<div>
<div style="text-align: center;"></div>

<div><strong>6、PKA</strong></div>

<div>也是系统提示要配置</div>

<div>
<div style="text-align: center;"></div>

<p><strong>7、STM32_BLE</strong></p>

<p>这个是重点但是一般还真不容易配错。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<div style="text-align: center;">&nbsp;</div>

<div style="text-align: center;"></div>

<div style="text-align: left;">设置了1个服务,1个特征</div>

<div style="text-align: left;">
<div style="text-align: center;"></div>

<div style="text-align: center;">&nbsp;</div>

<div><strong>8、DEBUG也设上,略</strong></div>

<div>&nbsp;</div>

<div style="text-align: center;"><span style="color:#27ae60;"><span style="font-size:18px;"><b>生成代码,我生成的是KEIL文件</b></span></span></div>
</div>
</div>
</div>

<hr />
<p>&nbsp;</p>
</div>

<p><span style="font-size:18px;"><strong>二、程序</strong></span></p>

<p><span style="font-size:18px;">1、printf重定向要实现,略</span></p>

<p><span style="font-size:18px;">2、main() ---&gt;while(1)好像要手工加入:</span></p>

<pre>
<code class="language-cpp">MX_APPE_Process();</code></pre>

<p><span style="font-size:18px;">3、加上BLE控制LD3(PB2)的功能</span></p>

<p><span style="font-size:18px;">Application/User/STM32_BLE/App下,led_service_app.c</span></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;">找到LED_SERVICE_LED_TOGGLE_WRITE_EVT,在后面加控制PB2和打印输出的代码</span></p>

<pre>
<code class="language-cpp">case LED_SERVICE_LED_TOGGLE_WRITE_EVT:
      /* USER CODE BEGIN Service1Char1_WRITE_EVT */
                        HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2);
                        APP_DBG_MSG("LED_SERVICE_LED_TOGGLE_WRITE_EVT\r\n");
      /* USER CODE END Service1Char1_WRITE_EVT */
break;</code></pre>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>三、效果</strong></span></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;">1、BLE调试助手操作</span></p>

<p>&nbsp;</p>

<p><span style="font-size:18px;">发现蓝牙WB09</span></p>

<div style="text-align: center;"></div>

<div>连接WB09,可以看到3个服务:GAP、默认的GATT、自己建的GATT:Unknow Service</div>

<div style="text-align: center;">
<div style="text-align: center;"></div>

<p style="text-align: left;">向Unknow Service下的唯一特征发送任何值,触发LED_SERVICE_LED_TOGGLE_WRITE_EVT消息</p>

<div style="text-align: center;"></div>

<div style="text-align: left;">读缺省GATT服务特征值返回:</div>

<div style="text-align: center;"></div>

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

<p><span style="font-size:18px;">2、NUCLEO-WB09KE收到任意写给特征值LED_TOGGLE的操作,都会触发打印如下日志,并且PB2翻转。</span></p>

<div style="text-align: center;"></div>

<div style="text-align: center;">&nbsp;</div>

<div><strong>其他没有描述清楚的可以直接参考STM32CubeMX的工程文件.ioc,应该可以用来生成KEIL文件:</strong></div>

<div></div>

<p>&nbsp;</p>


补充内容 (2024-10-6 14:42):
app_ble.c中540行左右可能需要自己加一下:



/* USER CODE BEGIN APP_BLE_Init_4 */
    APP_BLE_Procedure_Gap_Peripheral(PROC_GAP_PERIPH_ADVERTISE_START_FAST);
  /* USER CODE END APP_BLE_Init_4 */


补充内容 (2024-10-6 14:42):
调试器下载需要注意:
Debug->Connect:Normal
不要选under Reset,否则STLINK无法正常工作

Jacktang 发表于 2024-9-29 07:50

<p>BLE从机配置及BLE点灯的图文步骤已经说很详细了</p>

何剑波 发表于 2024-10-8 10:18

<p>大佬,感觉这个是单纯的使用他们封装的协议接口去使用,改不了底层是吧</p>
页: [1]
查看完整版本: 【NUCLEO-WB09KE评测】4、也谈BLE从机配置及BLE点灯