[MCU] 【沁恒RISC-V内核 CH582】6 BLE_UART例程评测

kit7828   2022-4-9 15:27 楼主

沁恒的BLE例程中有个BLE_UART的例程,还难得的见到文件

夹中的说明.txt文件

在整个的沁恒例程中很少看到对例程进行说明的,所以也希望沁恒官方能够对demo例程增加相应的说明,方便评测和学习者使用。

BLE的编程因为协议的原因,比较复杂,说实话,要不是有评测的压力或者产品的压力,估计自己很长时间都不会去啃这个。

BLE的demo编译后下载至开发板,跟以往例程不同的是,下载和验证的时间要延长了很多。

下载后,连接上串口

image.png  这个时候,打开手机端的BLE 调试助手(参考前面的评测例程, 【沁恒RISC-V内核 CH582】 5 蓝牙例程初次评测及环境搭建

b7b62d1b6f0987029754990acd4e038.jpg  

能够看到ch583_ble_uart,connect之后

image.png  串口显示上述信息,而手机App中是下方的界面

ee5ae01f4880d8aed7311cc05eed8c8.jpg  这个助手工具,可以收发,不过能够发送的只有最下方的一个

接收的只要点击相应的读取按钮,就能读到相应的信息

7483847473617ecf6ae5a2db14fb94e.jpg  Device Information这里基本都可以读取字符串的信息

而发送信息的只有一个

3e10599fa7ac8c2c74771ac230474d5.jpg

收到信息后,串口有接收到长度信息的提示

BLE RX DATA len:7

在代码稍稍修改了一下,就能显示接收到的信息了

为了测试方便,只处理字符串的信息

case BLE_UART_EVT_BLE_DATA_RECIEVED:
            PRINT("BLE RX DATA len:%d\r\n",p_evt->data.length);
            char * str = p_evt->data.p_data;
            str[p_evt->data.length] = 0x00;
            PRINT("BLE RX DATA:%s \n",p_evt->data.p_data);
            //for notify back test
            //to ble
            uint16_t to_write_length = p_evt->data.length;
            app_drv_fifo_write(&app_uart_rx_fifo,(uint8_t *)p_evt->data.p_data, &to_write_length );
            tmos_start_task( Peripheral_TaskID, UART_TO_BLE_SEND_EVT,2);
            //end of nofify back test

            //ble to uart
            app_uart_tx_data((uint8_t *)p_evt->data.p_data,p_evt->data.length);

            break;

这样,就能打印接收到的具体字符串了

也是对评测做个更细致的测试

image.png  对接收到的字符信息进行处理,应该就可以实现蓝牙控制了

void app_uart_tx_data(uint8_t *data,uint16_t length)
{
    uint16_t write_length = length;
    if(strcmp(data,"LED1 ON"))  HAL_TURN_ON_LED1();
    if(strcmp(data,"LED1 OFF"))  HAL_TURN_OFF_LED1();
    app_drv_fifo_write(&app_uart_tx_fifo,data,&write_length);
}

这样,蓝牙能够控制的就比较多了。

至少GAPRole和GATT方面的编程,要等今后工作上稍微空闲点的时候再尝试了。

本帖最后由 kit7828 于 2022-4-11 14:46 编辑

回复评论 (6)

沁恒官网对CH582的BLE_UART例程解读确实不多

 

点赞  2022-4-9 17:31
对蓝牙的掌握这么熟练,感谢分享,费心了,期待更优雅的作品。
点赞  2022-4-9 18:43

学习了,这个思路可以,过两天参考学习修改代码控制传送传感器数据。

点赞  2022-4-10 22:29

感谢提的意见,添加更多的注释我们会考虑的。

点赞 (1) 2022-4-11 13:52
引用: lugl4313820 发表于 2022-4-9 18:43 对蓝牙的掌握这么熟练,感谢分享,费心了,期待更优雅的作品。

感谢鼓励,总感觉GATT太难学了

点赞  2022-4-11 14:44
引用: WCH_Risc5 发表于 2022-4-11 13:52 感谢提的意见,添加更多的注释我们会考虑的。

谢谢,一定好好评测

点赞  2022-4-11 14:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复