前言
目前研一,七月份刚到实验室用过一段时间DA14580(大概一个月),现在十二月份因为项目要求,就复习一下之前学过的,顺便记录下来。本人也是一个小菜鸟一枚。如果有错误的地方 欢迎大家指出,多多交流。
DA14580也不多介绍了,网上资料很多。大概介绍下BLE的工作使用的两个协议。分别是GAP和GATT协议,我大概介绍下,网上有更详细的。
①GAP协议用来控制蓝牙的连接和广播。设备广播使够使你的设备被其他设备搜索到(比如打开蓝牙耳机,手机连接到蓝牙耳机这个过程中就是使用GAP协议)。
②GATT协议是用于两个蓝牙设备之间进行通信的协议,它定义两个 BLE 设备通过 Service 和 Characteristic 进行通信。注意一旦蓝牙连接成功,就会停止广播,其他设备也就搜索不到你的设备了,所以一个设备只能有一个连接(比如蓝牙耳机提示配对成功后,后面的数据传输就是使用GATT协议)。
开发环境
1.Keil5 for arm
芯片选ARMCM0
2.SmartSnippets
这个软件用来烧录程序到FLASH,DA14580是外部flash,而DA14583是内部flash。
3.开发板+Jlink(SWD接口)
4.软件开发包
使用SDK5.0.3或者SDK5.0.4(dialog官网上可以下载)
SDK3.x的版本写太乱了,我实在有点看不懂,所以选择用5.x的版本。。
5.手机端调试APP
LightBlue
软件框架介绍
1.总体框架
先用keil5导入工程文件,路径为
“…\5.0.4\projects\target_apps\ble_examples\ble_app_peripheral”
工程目录:
其中sdk开头的我们都不用修改,这是官方写好的。我们只需要修改user开头的。
main函数(不能修改)位于
2.user_config文件夹
①da1458x_config_advanced.h 进行一些高级配置
②da1458x_config_basic.h 进行一些初级配置
③user_callback_config.h 设置一些回调函数(比如连接蓝牙,断开连接…)
④user_config.h 设置广告参数、连接参数
⑤user_config_sw_ver.h 包括用户特定信息和软件版本等
⑥user_modules_config.h 定义用户会使用的应用模块
⑦user_profiles_config.h 定义蓝牙设备的信息
⑧user_periph_setup.h 保存与使用的SDK相关的硬件设置
3.user_custom_profiles文件夹
①user_cusus_config.c 用户1/2配置文件数据库结构和初始化
②user_custs1_def.c 用户1配置文件数据库的定义,其实就是定义了GATT协议中提到的Service 和 Characteristic。
4.user_platform文件夹
①user_periph_setup.c 外设的初始化过程。
5.user_app文件夹
①用户自定义的文件,比如对外设的一些驱动等等。
下载程序
1.编译程序
只要环境搭的没问题,编译都会通过的。
有一个警告,不用管他。
2.配置SmartSnippets
①注意这里要先插上Jlink和板子,然后点击New,随便输入一个Project Name,不用管Project Description
②然后选中123456和DA14580-01,点击Open。
进入后,有许多框框,先全部关闭,然后选择左边的选项
③找到工程文件下的Hex文件,路径为:
…\projects\target_apps\ble_examples\ble_app_peripheral\Keil_5\out_580
④选中Hex文件后,点击Connect,成功后点击Burn烧录就行了。
⑤注意DA14580要复位一下,才能运行刚下载好的程序。
⑥打开LightBlue,就能够搜索到DA14580的蓝牙了,名字为:DIALOG-PRPH
最近考试好多,我考完试再来继续更新。
下一章是自定义蓝牙的Service 和 Characteristic,并且使用LightBlue和DA14580进行简单的通信。
以上可能会有我理解错的地方,希望大家指出。