14683代码基本架构
勤基科技 陈杰明
导入pxp_reporter****例程
SDK的目录结构一定要注意,以下是本人的SDK目录结构,可参考
创建work space时自动生成的 .metadata 要与SDK在同一级目录下并且SDK路径最好不要包含空格
打开Studio,点击左上角的File按钮,在下拉菜单中选择import
点击NEXT,然后在Browser处选择从官网下载并解压好的SDK文件
点击确定,然后就会弹出这套SDK中所有的例程,默认是全选的。而我们只需要导入两个即可。
第一个是例程。第二个是Script,可以理解为编译依赖库,必须导入,否则编译会报错。
选着好工程以后点击 Finish,即可完成例程和Script的导入工作。
广播参数修改
双击pxp_reporter 就可以看到这套例程的代码结构。
设备名
通过上图可看到默认配对名,用户可以根据自己的需求修改。
MAC地址
关于广播间隔和蓝牙MAC地址的设置和获取,可以在gap.c中找到相关接口。
ble_error_t ble_gap_adv_intv_set(uint16_t adv_intv_min, uint16_t adv_intv_max)
ble_error_t ble_gap_address_set(const own_address_t *address, uint16_t renew_dur)
更多接口和说明可以研究gap.c这个文件。
服务注册
在pxp_reporter_task这个函数中,可以找到一些蓝牙参数初始化的接口调用
上面是注册默认服务
广播间隔和参数
调用上图的接口,可以修改广播间隔和广播参数。
系统时钟修改
在main.c的system_int函数中,第一个是设置主时钟,第二个和第三个是外设时钟设置分频。
系统时钟最大可以设置为96M,时钟频率越高,功耗越大,请选择适合自己项目的时钟频率即可。
添加串口打印
串口打印例程都是做好的,只是有些例程并没有把相关的宏定义打开,以及引脚没有配置。所以我们只需要把相关宏定义打开,然后把引脚配置一遍就可以了。
在custom_config_qspi.h里面添加一个宏定义: #define CONFIG_RETARGET然后我们打开main.c 找到下面这个函数:
可以看到例程的默认打印口已经配置好了,分别是使用P1_3和P2_3这两个口做打印口。如果使用的是其他例程,不一定每个例程都默认有做串口打印的引脚配置,可以自行检查。
当用户在程序中需要打印数据或者字符串时,只需要调用printf函数即可,用法和标准C语言的用法是一样的,注意要include”stdio.h”。
注意:有的例程配置的是UART1,有的例程配置的是UART2,具体可以找到以下文件位置查看
串口打印波特率等参数也在这里设置。
以上设置确定没问题以后,我们打开 pxp_reporter_task.c,在以下位置加上打印代码
这个时候我们把代码下载到板子上,复位,手机APP搜索 “Dialog PX Reporter”,连接串口打印助手就会出现我们添加的打印: