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

sujingliang   2024-9-26 15:02 楼主

目标

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

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

        那还等什么开干。

 

一、配置

我尽量贴的详细些

1、RCC:一定要重视RCC

1.png

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

时钟图:要和RCC对应上

2.png


2、SYS配上吧

3.png


3、RADIO_TIMER

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

 

4.png

4、RADIO

配置原因同上

5.png
5、UART1配置上,用来打日志
 
6.png
6、PKA
也是系统提示要配置
7.png

7、STM32_BLE

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

8.png
9.png
 
10.png
设置了1个服务,1个特征
11.png
 
8、DEBUG也设上,略
 
生成代码,我生成的是KEIL文件

 

二、程序

1、printf重定向要实现,略

2、main() --->while(1)好像要手工加入:

MX_APPE_Process();

3、加上BLE控制LD3(PB2)的功能

Application/User/STM32_BLE/App下,led_service_app.c

 

找到LED_SERVICE_LED_TOGGLE_WRITE_EVT,在后面加控制PB2和打印输出的代码

  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;

 

三、效果

 

1、BLE调试助手操作

 

发现蓝牙WB09

1.jpg
连接WB09,可以看到3个服务:GAP、默认的GATT、自己建的GATT:Unknow Service
2.jpg

向Unknow Service下的唯一特征发送任何值,触发LED_SERVICE_LED_TOGGLE_WRITE_EVT消息

3.jpg
读缺省GATT服务特征值返回:
4.jpg

 

2、NUCLEO-WB09KE收到任意写给特征值LED_TOGGLE的操作,都会触发打印如下日志,并且PB2翻转。

12.png
 
其他没有描述清楚的可以直接参考STM32CubeMX的工程文件.ioc,应该可以用来生成KEIL文件:
STM32WB09-BLE.rar (2.93 KB)
(下载次数: 1, 2024-9-26 14:59 上传)

 

补充内容 (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无法正常工作 本帖最后由 sujingliang 于 2024-9-26 15:23 编辑

回复评论 (2)

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

点赞  2024-9-29 07:50

大佬,感觉这个是单纯的使用他们封装的协议接口去使用,改不了底层是吧

点赞  2024-10-8 10:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复