自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 BLE MESH-VENDOR MODEL

这篇文章主要记录一下BLE MESH 中vendor model的消息。对于vendor model单条消息:在不分段的情况下最大是3(opcode)+8(用户内容)=11个字节。在分段的情况下,最多可发送3(opcode)+377(用户内容)个字节。...

2022-04-10 20:09:34 660

原创 红米手机如何抓取蓝牙log。

有两种方法:一.(1)进入设置 →我的设备→全部参数,多次点击“MIUI版本”,会出现打开开发者模式的提示。(2)返回设置界面,点击“更多设置”→“开发者选项”,打开其中的“打开蓝牙数据包日志”。(3)打开蓝牙,等一段时间关闭蓝牙。(4)然后可以从手机MIUI/debug_log/common/com.android.bluetooth/目录下找到抓取的log(不同手机有可能目录不一样)二.(1)打开蓝牙(2)拨号盘输入*#*#284#*#*,(3)点击同意,然后开始生

2022-03-21 21:17:06 11523 1

原创 如何elf文件转换为asm汇编文件

有时候为了方便定位问题,需要我们将elf转换为asm文件。按shift+鼠标右键,选择在此处打开命令窗口,输入.\objdump.exe -D -S .\abc.elf >.\adb_asm.txt小等一会儿就可以了。

2022-03-20 15:14:22 994

原创 Git使用汇总

Git快捷键使用Git生成SSH公钥Git常见问题汇总

2022-03-20 11:19:01 518

原创 BLE MESH之Sequence number

Sequence number包含在网络层PDU中,占用24bit。主要用于防止重放攻击。使用24位序列号,一个元素可以在重复一个随机数之前传输16777216条消息。如果一个元素平均每5秒发送一次消息,则该元素可以在随机数重复之前传输2.6年。每个元素应为其生成的网络PDU使用严格递增的序列号。在序列号接近最大值(0xFFFFFF)之前,元素应使用IV更新流程更新IV索引,来确保序列号永远不会回绕。对于分段消息,每段消息的序列号都是不一样的。对于上层重发的消息,序列号也是不一样的。

2022-02-24 20:30:21 491

原创 低功耗蓝牙(BLE)-- 设备地址(Device address)

BLE 设备通过设备地址和类型来标识设备,地址长度为48bit,即6个字节。设备应使用至少一种类型的设备地址,并且可以同时包含两者。一个BLE设备的标识地址(Identity Address)可以Public Device Address 或 Random Device Address。如果设备正在使用 可解析的私有地址,它也应该有一个身份地址。设备地址又可细分为一下几种类型:1.Public device address由 24-bit 的 company_id 和 24-bit

2022-01-16 22:36:14 1718

原创 低功耗蓝牙(BLE)-- advertisements广播篇

为了更方便理解 BLE 中的广播,首先要先了解 BLE 架构中的通用访问配置文件 (GAP)层。GAP 为BLE 设备相互交互提供了一个框架,包括:BLE 设备角色 广播(广播、发现、广播参数、广播数据) 扫描 连接建立(发起连接、接受连接、连接参数) 安全相关BLE 设备有四种主要的 GAP 角色:Central:发现 BLE 外围设备和广播者的设备,具有连接外围设备的能力。Peripheral:可以广播...

2022-01-07 23:54:13 5032 2

原创 低功耗蓝牙(BLE)-- PHYSICAL LAYER(物理层)

1 SCOPEBLE 工作在非授权的 2.4 GHz ISM 频段,采用跳频的方式来对抗干扰和衰落。定义了两种调制方案。 BLE设备必须具备的强制调制方案(“1 Msym/s ”)使用整形的二进制频率调制来最小化收发器的复杂性。 符号率为 1 Msym/s。 可选的调制方案(“2 Msym/s ”)与此类似,但使用 2 Msym/s 的符号率。1 Msym/s 调制支持两种 PHY:• LE 1M,未编码数据为 1 Mb/s;• LE Coded,访问地...

2021-12-26 13:54:14 2021

原创 低功耗蓝牙(BLE)-- 寻向(DIRECTION FINDING)(AOA/AOD)篇

BLE 设备可以通过传输测向功能的数据包(常说的CTE包),让对端设备获得自己的方向。 使用来自多个发射器的方向信息和提供它们位置的profile-level信息,BLE 设备进而可以计算出自己的位置。 注意:仅Uncoded PHY 支持此特性。1. ANGLE OF ARRIVAL (AOA) BLE 设备可以通过使用单个天线发送带有测向功能的数据包,让对端设备获取方向信息。由射频开关和天线阵列组成的对端设备在接收部分数据包的同时...

2021-12-19 15:00:06 2529

原创 低功耗蓝牙(BLE)-- Architecture篇

BLE 工作在非授权的 2.4 GHz ISM 频段,采用跳频的方式来对抗干扰和衰落,并提供许多 FHSS (Frequency-Hopping Spread Spectrum)载波。BLE协议目前支持1Mb/s,2Mb/s,500kb/s和125kb/s四种通信速率,对于BLE设备来说,其中1Mb/s 是必须要支持的,2Mb/s,500kb/s和125kb/s速率是可选的。其中500kb/s和125kb/通过前向纠错编码的方式,分别使用2个符号代表1比特(S=2),和使用8个符号代表1比特...

2021-12-12 20:30:04 3889

转载 git 问题整理

(1)部分:https://wiki.mahara.org/wiki/Developer_Area/Contributing_Code/Troubleshooting_your_Gerrit_connection(2)git报错:unable to create file xxx.file : permission denied不知道是不是文件在什么地方被打开或者占用了,试了网上很多方法都不行,最后重启了电脑,再执行git 命令,就可以了。(3)git merge 后 push 到 Gerr

2020-07-28 10:22:00 664

原创 sizeof笔试题

#include<stdlib.h>#include<stdio.h>int main(void) { char str[] = "hello"; char *p = str; int n = 10; int a[5]; char *ptr = (char*)malloc(100); struct s1{ char z; ...

2019-10-15 16:18:20 259

原创 Python_楼梯数计算

题目描述:"有一个长阶梯, 若每步上 2 阶,最后剩1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。"def stepnum(): number = 1 i = int(number) while True: if (( i % 2 == 1...

2019-06-12 15:57:30 1004

原创 s.isdigit()、isdecimal()和s.isnumeric()区别

isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无isdecimal()True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字Error: byte数字(单字节)isnumeric()True: Unicode数字,全角数字(双字节),罗马数字,汉字数字...

2019-06-06 14:39:53 921

原创 Python案例-文本统计

参考文献:《Python编程入门》--Toby Donaldson 著问题:计算并打印文本文件内容的统计数据。我们想知道给定文本文件'bill.txt'包含多少个字符、行和单词。出单词数外,我们还想知道文件中出现次数最多的的前10个单词(可以排除掉一些功能词),并按出现次数排列它们。#wordstats.py#包含所有要保留的字符的集合keep = {'a', 'b', 'c',...

2019-06-04 19:31:28 1043

原创 Python入门编程之字符串

1.1字符串索引1.1.1字符串索引Python使用方括号来标识字符串索引:方括号内的数字指出了要获取那个字符。Python中,最小字符串索引总是0,而最大的索引总是比字符串长度小1。如果索引超出了字符串末尾,将导致“超出范围”错误。>>> s='apple'>>> s[0]'a'>>> s[1]'p'>>&g...

2019-05-31 20:51:49 393

转载 关于XP环境下pyserial,提示AttributeError: function 'CancelIoEx' not found错误的解决方法

原因CancelIoEx函数,只在Vista及以上版本运行解决方法:使用低版本pyserial输入指令pip install pyserial==3.0就可以了下图为命令窗口显示C:\Documents and Settings\Administrator>pip install pyserial==3.0Downloading/unpacking pyserial==3...

2019-05-31 10:34:55 1286

原创 python入门编程之算数、字符串与变量

笔记内容主要摘抄于《Python编程入门》--Toby Donaldson 著算数、字符串与变量1.整数算术1.1 基本算术运算符加 +; 减 -; 乘 *; 除 /; 求余 %; 整除 //; 乘方 **。1.2 求值顺序Python 算术运算规则与常规算术运算相同。1.3 长度不受限制与其他大多数编程语言不同,Python对整数的长度没有限制。2...

2019-05-29 16:52:46 449

原创 最后一个单词的长度

给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5C代码int lengthOfLastWord(char * s){ int len=strlen(s); if (0 == len)...

2019-05-27 10:53:22 102

原创 报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "one 1"("一个二","一个...

2019-05-27 09:54:31 235

原创 typedef vs #define

#define是 C 指令,用于为各种数据类型定义别名,与typedef类似,但是它们有以下几点不同:typedef仅限于为类型定义符号名称,#define不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。 typedef是由编译器执行解释的,#define语句是由预编译器进行处理的。...

2019-05-24 15:50:28 156

原创 排序

1.选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。void swap(int *a,int *b) //交換兩個變數{ int temp = *a; *...

2019-05-22 16:17:09 88

原创 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文...

2019-05-21 16:38:46 261

原创 变量的内存分配

当在程序中声明一个变量时,编译器会给变量预留内存空间。这种预留内存空间的过程就叫分配。全局变量在程序开始执行时分配,直到程序执行完之后才会释放内存空间。局部变量只有但函数调用时才会分配内存空间。变量本身在分配给这个函数的存储空间中分配,函数的存储空间叫函数的帧(frame)。只要函数在运行,局部变量在帧中的地址始终是不变的。当函数返回时,帧以及它的所有变量都被丢弃,以便让别的函数使...

2019-05-21 16:04:03 1664

原创 运算符sizeof

除了字符型数据在所有计算机中被定义成一个字节长度之外,其余类型的数据在计算机中存储所需要的字节数,对于不同计算机是不同的。例如,整型变量在一些微型机中占两个字节,在一些大型机中占四个字节的内存。同样一个double型变量一般占八个字节的内存,但有些计算机也例外。一般来说,C语言编译器的设计者会选择对计算机最有效的数据存取长度。 在编写C语言程序时,你可以使用siz...

2019-05-21 15:14:30 158

原创 C语言中的数组

特征:1.数组是有序的。2.数组是同质的。在C语言中,每个数组有两个基本特性:1.元素类型: 存储在数组元素中的数值类型。2.数组大小: 数组所包含的元素个数。当新建一个数组时,必须指明数组的元素类型和数组大小。数组声明int intArray[10];在大大多数情况下,应该用一个符号化的常量而不是一个具体的数值来指定数组的大小。用一个符号化的...

2019-05-19 15:25:05 672

原创 51单片机学习笔记

1.若使用KEIL自带库函数对应的头文件(*.H文件),则应使用<>;自己编写的头文件一般放在当前C文件所在的目录,这是就应该使用双引号"",这样可以减少程序编译时搜索文件的时间。2.单片机延时方法:(1)利用STC自带的软件计算;(2)利用_nop_();(3)利用定时器/计时器实现精确延时。...

2019-05-14 20:01:51 303

原创 51C中_nop_();

包括在库函数intrins.h中的表示空循环一个机器指令的时间,12M中表示1us;6M中表示2us;24M中表示0.5us

2019-05-14 14:36:07 1903

转载 C 存储类

存储类是C语言与C++语言的标准中,变量与函数的可访问性(即作用域范围scope)与生存期(life time)。存储类可分为auto、register、static、extern、mutable、thread_local等。auto 存储类auto存储类是所有局部变量默认的存储类。{ int mount; auto int month;}上面的...

2019-05-13 10:11:49 211

原创 字符串价值

题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如: 字符串"abacaba",里面包括4个'a',2个'b',1个'c',于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。输入描述:输入包括两行,第...

2019-04-25 15:21:00 176

原创 还原密码

1,将数字变为英文单词例如:13699>onethreesixninenine;2,按某种规律改变字母排列顺序及大小写。#include<bits/stdc++.h>using namespace std; map< char, int > Index; string str;int a[ 10 ]; int main(){ ...

2019-04-24 20:50:53 471

原创 双对称字符串

1.双对称,例如aabbaa;2.字符为偶数个,比如aabaa不符合;3.第1个字符与第2个字符相同,第三个和第四个相同,依次类推(aabbccbbaa);#include<bits/stdc++.h>using namespace std; string str; bool Check( ){ string tmp = str; rev...

2019-04-24 20:42:49 982 2

原创 单片机看门狗的使用

首先 ,你要知道什么是看门狗?在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。其次,看门狗的工作原...

2018-11-03 09:03:32 1074

原创 Keil C51 中使用Printf()进行串口输出。

如何使用printf在串口显示信息,有两种办法,因为在keil C51中 printf函数是调用putchar进行数据传送的,而putchar应该是先判断TI是否为1,不为1则等待为1。如果为1则清0,然后送出一个字符。因此如果你直接使用printf函数,你的程序就会在putchar函数中等待TI为1。这时你的程序就相当于直接死掉了。你可以通过改写putchar函数实现自己的目的。...

2018-11-02 10:19:30 8722

原创 带宽的两种概念

第一种是电子电路意义上的带宽,简单来说就是可以使电子电路稳定工作的频率范围,单位一般为MHz,GHz,像显示器的带宽还有通讯\网络中的带宽就属于这种。第二种指的是数据传输率,单位一般为‘字节/秒’,比如说总线带宽,网络带宽,内存带宽等等。参考链接:http://www.elecfans.com/dianzichangshi/2009031129521.html...

2018-09-12 19:45:15 1412

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除