本帖最后由 呐咯密密 于 2021-10-19 15:03 编辑
半路横插一脚测评ST B-U585I-IOT02A开发板。
硬件上这里就不吹捧了,ST的没啥好吹的,堆料扎实,做工精细,版面美观,没了。
这里主要介绍该板子的蓝牙功能。
测试流程:
在未测评该开发板之前,我便得知该板存在一定的小bug,其实也不能算是BUG,只能说使用的时候容易摔跤。
其中BLE的测试问题尤其多,以至于到我发帖之时,还没看到关于BLE测评成功的帖子,暂定位首发吧。
首先要知道该开发板的BLE模块型号是:STM32WB55,在使用该开发板的BLE功能时就必须确保该模块正常工作。
STM32WB55固件更新:
我手里的开发板是被别人测评过的,不能确认BLE的固件是正确的,这就需要重新烧录固件。
1.接线。
BLE模块的烧录口在开发板上是CN5的排针口,顺序为从下到上:VCC,CLK,GND,DIO。使用STLINK烧录,我这里未焊排针,因为测评板是需要退回的,擅自焊接不太礼貌,就用探针怼上烧录。
烧录前准备BLE的固件:直通ST官网下载。
下载后解压打开至:STM32Cube_FW_WB_V1.12.0\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x。
在该文件夹中可以看到BLE的各种协议栈,我们需要的是stm32wb5x_BLE_Stack_full_fw.bin
烧录该协议栈我们使用STM32CubeProg,将ST-LINK接上开发板,同时注意CN8的板载ST-LINK的usb接口也要上电,否则无法烧录。
如果你的板载ST-LINK也接在电脑上,此时会检测到两个设备,注意选择BLE的芯片,连接。
连接后选择STM32CubeProg中的固件升级模式
按照上述截图的步骤一一进行,第二步选择我们上面说的协议栈:stm32wb5x_BLE_Stack_full_fw.bin。
第三步选择烧录地址,改地址的选择来源于上面文档中的Release_Notes.html。打开可看到如下:
第四步烧录即可。如果使用最新的STM32CubeProg,可能会导致烧录失败。
我这里使用的是V2.7版本。
烧录完成后就完成了BLE栈固件的更新。接下来就需要烧录STM32WB的应用固件,此固件会将STM32WB配置成BLE服务器(Sever)。
烧录STM32WB的应用固件:
BLE_AT_Server.rar
(45.04 KB)
同样保持上述连接,将STM32CubeProg切换到Erasing & Programming界面,选择固件烧录便可。
烧录完成后板载BLE模块就相当于BLE的服务器,我们只需要将开发板的主控STM32U5烧录客户端固件使之变为BLE客户端(Client)便可完成通信。
STM32U5烧录:
此时烧录就比较简单了,只接我们板载的ST-LINK V3。直接在Erasing & Programming界面选中固件即可烧录,但是难点在没有这个固件,ST确实给了BLE的例程,但是是IAR的工程,我没有IAR软件,也不会用,只能自己将IAR的工程移植到keil5 上。使用ST的WIFI例程作为模板,移除wifi驱动,添加BLE驱动,修改主函数和中断函数便可。移植过程不描述,直接上传HEX文件,兄弟们直接下载便可:
WiFiBasics.rar
(22.71 KB)
因工程直接在源文档移植,太大了,上传不了,需要的私聊我给你。
注意切换连接芯片,选中固件烧录即可。烧录后复位开发板,可在串口助手看到打印信息。
此时按下开发板的USER按键,就那个蓝色的软按键。
打开手机蓝牙调试APP。
stblesensor.apk.rar
(18 MB)
可监测到蓝牙。(此处如果连接不上,上电复位,不按USER按键直接打开APP连接)
电机灯的图标可以看到开发板上的灯亮灭。
同时串口助手也可以收到信息打印。
添加一个动态测试效果展示:
终于搞完了,这个真不容易,虽然过程很简单,但是在没有一个完整的教程下还是费了很大的劲,特别是我在烧录固件的时候一直烧录不进,这里要感谢豆包@yangjiaxu 的指导,不过他也坑了我,给了我一个失败的主控固件,害我一直搞不出来。
|