<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[琦。]]></title><description><![CDATA[liberalism]]></description><link>https://blog.youkuaiyun.com/comprends</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; comprends]]></copyright><item><title><![CDATA[DA14531广播包数据动态修改]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/122229755</link><guid>https://blog.youkuaiyun.com/comprends/article/details/122229755</guid><author>comprends</author><pubDate>Thu, 30 Dec 2021 11:09:15 +0800</pubDate><description><![CDATA[DA14531是dialog今年推出的一款BLE芯片，价格低、功耗低，应用场景广泛。

开发过程中，有遇到这样的一个需求，DA14531与外设通信，随后将一些获得的信息在广播包里发送出去，想要实现这个需求，就需要在初始化蓝牙广播的时候，增加读取器件信息，更改广播包数据，再去广播。

再谈具体修改方法之前，先说一下广播包的数据构成，这里指的是如图所示的数据，不是基础定义的device name，maca地址，RSSI那些。



在Advertisement这个数据包里，可以存放的数据选择很多，可以参考官方B]]></description><category></category></item><item><title><![CDATA[DA14580使用Segger RTT实现Log调试]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/107561807</link><guid>https://blog.youkuaiyun.com/comprends/article/details/107561807</guid><author>comprends</author><pubDate>Fri, 24 Jul 2020 15:42:07 +0800</pubDate><description><![CDATA[DA14580是Dialog推出的一款蓝牙芯片，有些年头了，近期已经接近停产，但是由于项目需要还在使用。Dialog官方的sdk个人感觉有点难用，不像其他sdk可以很快的入门找到相应的接口快速开发，面临资料较少，很多东西都无法在网上查到，也没有官方的log调试。本来是可以使用串口调试，但是由于我用的是低电压版本开发，所以串口调试也无法使用了。故经大佬指点，实现了RTT调试，现说明整个流程，仅供参考。

一、添加相应文件至工程目录
1、Segger RTT的相应文件在J-Link驱动安装目录下，以我的版本为例]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – GAP]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99290511</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99290511</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:28:31 +0800</pubDate><description><![CDATA[GAP（Generic Access Profile）通用访问规范层算是BLE协议栈中最顶部的一层，它定义了设备如何广播、扫描、发现和建立连接，以及配置工作角色（Role）、可发现性、广播数据内容和安全相关的参数。从编程视角来看，GAP中的内容就像是一个config文件，BLE协议栈其他层的工作，都要从GAP中获取初始化参数和配置信息。GAP中定义了一系列模式（Mode）和规程（Procedure...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – GATT]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99290476</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99290476</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:26:34 +0800</pubDate><description><![CDATA[GATT（Generic Attribute Profile）是BLE协议栈中比较靠上的一层，它基于ATT层的属性（Attribute），对BLE连接的主从双方具体的通信行为进行规范。GATT规定了主机如何给从机发消息，以及从机如何给主机发消息。

前面ATT层里面介绍了属性分组，即一个Profile下面有多个服务项，一个服务项下面有多个特征值，一个特征值下面有多个描述符，特征值是承载用户数据的载...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – ATT]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99290166</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99290166</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:20:22 +0800</pubDate><description><![CDATA[ATT（Attribute Protocol）属性层是GATT和GAP的基础，它定义了BLE协议栈上层的数据结构和组织方式。
属性（Attribute）概念是ATT层的核心，ATT层定义了属性的内容，规定了访问属性的方法和权限。以编程的眼光来看，属性是一个数据结构，它包括了数据类型和数据值，就如同C语言结构体的概念，开发者可以设计独特的结构，来描述外部世界实体。属性包括三种类型：服务项、特征值和描...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – SM]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99289615</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99289615</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:17:46 +0800</pubDate><description><![CDATA[SM（Security Manager）安全管理层定义了BLE通信两端设备的配对方法和密钥分发的工作模式，提供了一系列加密算法，为BLE通信提供了加密、认证等安全保障。它与GAP层密切相关，关于安全需求的一些配置是在GAP层中完成的。

对数据进行加密，BLE使用AES加密算法，通过复杂的认证过程，保证该加密算法的密钥能够被安全的传递到通信链路两端的设备中。一旦有了密钥，就可以对通信过程中的数据进...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – L2CAP]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99288940</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99288940</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:10:49 +0800</pubDate><description><![CDATA[L2CAP（Logical Link Control and Adaptation Protocol）中文名为逻辑链路控制和适配协议，它位于BLE协议的主机（Host）部分，承担着协议复用（Protocol Multiplex）的任务。蓝牙协议官方手册的章节首页提到L2CAP还承担上层（ATT，SM）发来的数据的分割/重组（Segmentation/Reassembly）任务。这里需要澄清一点，这...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – HCI]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99288775</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99288775</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:05:51 +0800</pubDate><description><![CDATA[HCI（Host Controller Interface）层中文称为主机与控制器接口，它连接主机（Host）和控制器（Controller），将主机的操作转化成HCI指令传给控制器，BLE协议规定了HCI的指令集。

单芯片与双芯片

在BLE协议栈的层模型中，位于下部的物理层、链路层、DTM属于控制器，位于上部的L2Cap、ATT、GATT、GAP、SM层则属于主机，在主机之上用户自己的程序称...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – 链路层（Link Layer）]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99287578</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99287578</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 10:00:47 +0800</pubDate><description><![CDATA[链路层位于BLE协议栈的控制器（Controller）部分，在物理层（Physical Layer）之上，接口层（HCI）之下。物理层比较抽象，除了BLE信道，许多地方都是通用的通信技术，不能反映BLE通信协议的特点，而HCI之上的部分，大多在软件中实现，因此，理解BLE协议栈的底层实现，一定要对链路层有所认识。链路层定义了协议栈中最为基础的状态机、数据包格式、广播和连接流程等问题。

《低功耗蓝...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – 物理层（Physical Layer）]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99287096</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99287096</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 09:37:05 +0800</pubDate><description><![CDATA[BLE物理层解决了最基础的通信问题，比如调制解调、信号放大与滤波等。在实际使用中，几乎不会关注物理层的情况，但是在BLE产品测试阶段，要测试频偏，信号强度等项目，只有对物理机制有所了解，才能理解测试项目的目的。


调制

通信领域，有模拟调制和数字调制，BLE使用数字调制。数字调制也分为幅值调制和频率调制，BLE使用频率调制，该技术名称叫：频移键控（Frequency Shift Keying...]]></description><category></category></item><item><title><![CDATA[BLE协议栈 – 介绍]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/99286442</link><guid>https://blog.youkuaiyun.com/comprends/article/details/99286442</guid><author>comprends</author><pubDate>Mon, 12 Aug 2019 09:26:45 +0800</pubDate><description><![CDATA[在BLE技术领域里有三个方向：BLE APP，BLE固件和BLE协议栈。其中BLE协议栈是基础，BLE芯片内部提供的固件程序充当驱动，手机上的APP作为控制端。做APP开发无需要太多的专业背景，而做固件开发则需要深入理解协议栈。

BLE协议栈的官方文档可以自由下载阅读，该文档排版优良，颇具可读性。可是该文档仅有英文版，整个文档多达2000多页，这无疑增加了非英语读者的阅读困难。网上能够找到一...]]></description><category></category></item><item><title><![CDATA[Windows 7安装Visual Studio 2003疑难问题解决]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/94446215</link><guid>https://blog.youkuaiyun.com/comprends/article/details/94446215</guid><author>comprends</author><pubDate>Tue, 02 Jul 2019 15:37:20 +0800</pubDate><description><![CDATA[因为项目的需求，需要在一台win7的电脑上搭建VS2003的环境。安装步骤网上有很多，但是直接安装都是失败的。经过多方查找试验，得出以下正确步骤。

1）安装IIS 7.0的FrontPage 2002 Server Extensions（点击下载）



在安装1）的过程中会遇到“Your system has updates that need to be applied during t...]]></description><category></category></item><item><title><![CDATA[EmbSysRegView的离线安装方法]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/88033161</link><guid>https://blog.youkuaiyun.com/comprends/article/details/88033161</guid><author>comprends</author><pubDate>Thu, 28 Feb 2019 16:34:47 +0800</pubDate><description><![CDATA[最近用到了一个基于Eclipse的IDE，需要安装EmbSysRegView，用IDE直接Install不管怎么切换网络都无法安装成功，仔细查阅过后发现是更新平台上还并未更新最新的安装包。

IDE报错如下：

An error occurred while collecting items to be installed
session context was:(profile=Platform...]]></description><category></category></item><item><title><![CDATA[利用HAL库硬件IIC驱动OLED]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/78953336</link><guid>https://blog.youkuaiyun.com/comprends/article/details/78953336</guid><author>comprends</author><pubDate>Tue, 02 Jan 2018 16:48:20 +0800</pubDate><description><![CDATA[利用CubeMX生成工程文档就不用细说了,网上很多类似的教程.主要谈一下自己将原来驱动OLED的库例程移植为HAL库的驱动,本质上没有多大的区别,只是几个函数运用的问题.



利用CubeMX 选用I2C1,配置默认即可
	生成工程之后,单独创建oled.c oled.h文件,在其中添加驱动代码,具体代码如下:



I2C_HandleTypeDef hi2c1;

void Wr...]]></description><category></category></item><item><title><![CDATA[vim的一些配置]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/64442000</link><guid>https://blog.youkuaiyun.com/comprends/article/details/64442000</guid><author>comprends</author><pubDate>Tue, 21 Mar 2017 15:07:06 +0800</pubDate><description><![CDATA[显示行数
找到vimrc的位置,一般是在/etc/vim下.

sudo vim vimrc在最后添加
set nu
效果:]]></description><category></category></item><item><title><![CDATA[VS注释快捷键]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/62424604</link><guid>https://blog.youkuaiyun.com/comprends/article/details/62424604</guid><author>comprends</author><pubDate>Thu, 16 Mar 2017 15:49:42 +0800</pubDate><description><![CDATA[注释代码 先ctrl+k 再ctrl+c

注释代码 先ctrl+k 再ctrl+u



做个记录..免得忘记还得百度.
]]></description><category></category></item><item><title><![CDATA[初学Linux命令--who]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/54341703</link><guid>https://blog.youkuaiyun.com/comprends/article/details/54341703</guid><author>comprends</author><pubDate>Wed, 11 Jan 2017 11:06:27 +0800</pubDate><description><![CDATA[命令：who 


第二列显示用户连接方式。Tty表示 用户直接连接到电脑上，而pts表示 远程登录。]]></description><category></category></item><item><title><![CDATA[STM32学习中遇到的问题-(1)跑马灯的实现]]></title><link>https://blog.youkuaiyun.com/comprends/article/details/51760903</link><guid>https://blog.youkuaiyun.com/comprends/article/details/51760903</guid><author>comprends</author><pubDate>Sun, 26 Jun 2016 00:38:55 +0800</pubDate><description><![CDATA[基于正点原子mini开发板  STM32F103RCT6
基础几乎为零，很多知识都忘记了，从头开始学起。
依据"正点原子教程视频，零死角玩转STM32，STM32不完全手册，STM32F103固件函数库，STM32中文参考手册，STM32F10X数据手册"进行学习。
主要要自己进行编写的有，main.c，led.c，led.h
首先写led.h  这一部分为led.c的头文件，必不可少，代]]></description><category></category></item></channel></rss>