MCU应用总结 NXP篇之 QN9020 OTA(上) - QPPS例程

1) 前言
1.1) 概述
        QN9020是一款超低功耗、高集成度的BLE 4.2芯片,拥有一个高性能ARM Crotex-M0内核,可在纽扣电池之类的小容量电池上运行,适合于运动/保健、智能配件等应用。
1.2) 环境说明
        操作系统:Windows7 32bit;
        开发环境:Keil uVision V5.23.0.0;
        开发板:QN9020 Mini DK_V8;
        固件包:QN902x_SDK_140。
2) Proximity Reporter
        Proximity Reporter例程在官方文档“AN11664 QN9020 Quick Start Guide Rev. 3”中“5. Quick start with Demo”有较为详的操作步骤。需注意下载程序时,需要触发“RESET”按键,如图 1。
 
图 1 开发板RESET按键
        说明:使用ISP studio下载时,选择固件请使用“BinFiles_B2_v40”文件下的bin文件;\QN902x_SDK_1.4.0\BinFiles\BinFiles_B2_v40\proxr.bin;如
        开发板使用的是QN9020/D,对应B2的库文件和bin文件;产品开发是推荐推荐使用QN9020/E(对应应B4的库文件和bin文件);若使用QN9020/D开发BLE4.2应用时,需要重新编译代码;
 
图 2 固件选择
3) QPPS
3.1) 推荐网络资料
        QPP Server推荐资料地址:http://blog.csdn.net/sinat_23338865/article/details/73800478。
3.2) BLE发送数据
        BLE发送数据函数为app_qpps_data_send(),函数的说明见“UM10997 QPP Programming Guide”中2.3.5小节的说明如图 3。
 
图 3 app_qpps_data_send函数说明
        app_qpps_task.c文件中的app_test_send_data()函数调用app_qpps_data_send(>函数向外发送数据,如图 4;运行例程时,若使用BLE Dongle,在电脑中打开QTOOL后,QTOOL软件中收到的数据为app_test_send_data()发送的数据。
 

图 4 app_test_send_data函数
3.3) BLE接收数据
        app_qpps_data_ind_handler()函数中可取出BLE接收的数据;
        例程中将BLE收到的数据长度、第一个数据通过串口输出,如图 5(在app_qpps_task.c文件中)。
 
图 5 例程中的app_qpps_data_ind_handler函数实现
3.4) 修改例程
        修改例程目的:将BLE收到的数据,拟回环的方式发送出去;为实现该功能需要对例程代码做如下更改:
        1> 屏蔽对app_test_send_data()函数的调用
                a> 在app_qpps_task.c文件中的app_qpps_data_send_cfm_handler()函数中如图 6所示代码;

 
图 6 app_qpps_data_send_cfm_handler函数屏蔽代码
                b> 在app_qpps_task.c文件中的app_qpps_cfg_indntf_ind_handler()函数中如图 7所示代码;
 
图 7 app_qpps_cfg_indntf_ind_handler函数屏蔽代码
        2> 增加BLE发送
        在app_qpps_task.c文件中app_qpps_data_ind_handler()函数中调用app_qpps_data_send()发送数据如,增加代码语句为:app_qpps_data_send(app_qpps_env->conhdl,0, param->length, param->data)。增加代码后如图 8。
 
图 8 调用app_qpps_data_send函数
3.5) 程序下载
        没有使用OTA功能时,可以用keil下载;如果使用了OTA功能,需要使用ISP下载并勾选“OTA”选项;下载完成后LED2 常亮;
        注意:
        1> 若下载时调试器没有找到芯片,可尝试按“Button1”、“Reset”;
        2> 使用keil下载完成后需要手动按“Reset”;
3.6) 测试
        使用手机APP(如Google Play 商店中的“NXP Iot ToolBox”)或者QTool(本文方式);
        将USB dongle插入电脑,打开QTool,选择对应串口后,点击“Scan”,如图9;
        按开发板上的“Button 1”,LED1快速闪烁;扫描到开发板后(本文设备的名称是:Quintic BLE_QN9020DK-SAC),点选开发板,点击“Connect”如图10;连接后LED1常亮;
 
图 9 QTool扫描
 
图 10 连接设备
        在QTOOL中选择“Client”选下卡,找到“QPPC”子选项卡,点击“Enable”如图 11在“Data send”框中填写数据并点击“Send”,应收到相同数据如图 12;
 
图 11 使能QPPC
 
图 12 收发数据测试

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能