感谢21IC组织的活动,感谢雅特力公司提供的WB415开发板,前面已经有多篇测评文章介绍,此处就不再赘述。 WB415将蓝牙模块和应用模块MCU集成在一起,提高了集成度,对于可穿戴式设备是好的,但对于想改造传统串口控制的设备,则显得有点多余。不知道雅特力的产品中是否有类似WB415中的蓝牙模块的单独的芯片,这样方便做成一个透传模块,配合移动APP以改造传统的串口控制设备。 雅特力提供的例程AN0077_AT32_BLE_Application_Note_V2.0.4中,wb415_mcu_demo_2.0.3实际就拥有透传功能,蓝牙模块的UART21是在内部连接到应用MCU的USART3上的,也就是说wb415_mcu_demo_2.0.3例程中USART3接收中断收到的数据是蓝牙模块接收到的数据,发送中断发出的数据将由蓝牙模块发送出去。 这里测评工作就是利用例程已有的函数,增加一个命令解释函数,将蓝牙透传发来的数据解读为LED的控制指令,并将命令字节显示在显示屏上。例程中还用USART2来转发蓝牙的数据,即蓝牙发来的数据会通过USART2发出,USART2收到的数据会由蓝牙模块发出。修改后的例程将蓝牙模块收到的数据和USART2收到的数据分别显示在屏幕上。两者都能控制LED。 修改后的例程初始化完成,显示18*14点阵的字模,沿用的是用于F030C8T6的,规模较小,有0-9、26个大写字母,‘。’、‘’、‘-’共39个。相关显示函数在修改后例程的DISP子目录中,显示模块的IO定义在ST7735S.h中。 随后屏幕显示静态信息 本来应该搞个手机蓝牙APP配合使用,但奈何还没太学会手机APP编程,只好先用通用的BLE调试助手来测试例程。在手机上打开“BLE调试助手”,找到WB415-GATT,连接上设备后使用第一个“Unknown Service”,箭头向上的“Unknown Characteristic”是向设备发送数据,箭头向下的“UnknownCharacteristic”是从设备接收数据。 例程定义了两个字节的命令格式,第一字节的bit7为1表示是命令类型字节,bit0表示LED的ON/OFF,第二字节表示待操作的LED序号。BLE下方显示当前BLE模块发给MCU的数据。 8102表示点亮LED4(序号00—LED2,01—LED3,02—LED4)
串口调试助手通过AT-LINK模拟的串口(本机为COM36)发送命令,同样可以控制相应的LED。
8002熄灭LED4。同时串口发送的命令字节显示在COM下方。 类似的操作,从串口发送8101点亮LED3。 从手机的“BLE调试助手”发送 8001熄灭LED3。 总之,利用WB415可以比较轻松的进行蓝牙控制设备的开发。 以后学会了手机APP编程在发个帖子.
|