自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 Zigbee ZLL简介

从Zigbee 3.0开始, ZLL已经不再局限于照明领域,而是逐渐演变成一种网络和配网方式。

2023-02-12 18:15:32 509

原创 Zigbee IAS zone

Zigbee IAS zone注册流程

2023-02-12 17:53:17 344

转载 __attribute__ ((packed)) 的作用

__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;}sizeof(int)=2;sizeof(my)=3;(紧凑模式)在GCC下:struct m...

2020-08-07 15:44:27 378

转载 C语言中长度为0的数组

长度为0的数组在标准c和c++中是不允许的,如果使用长度为0的数组,编译时会产生错误,提示数组长度不能为0。但在GNUc中,这种用法却是合法的。它的最典型的用法就是位于数组中的最后一项,如上面所示,这样做主要是为了方便内存缓冲区的管理。如果你将上面的长度为的数组换为指针,那么在分配内存时,需采用两步:首先,需为结构体分配一块内存空间;其次再为结构体中的成员变量分配内存空间。这样两次分配的内存是不连续的,需要分别对其进行管理。当使用长度为的数组时,则是采用一次分配的原则,一次性...

2020-08-07 15:23:11 555

转载 牢记大端小端的含义

转载自:https://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html仅摘录关键部分内容,详细看原文。 稍有些英语常识的人都会知道,如果单靠字面意思来理解俚语,那是很难猜到它的正确含义的。在计算机里,对于地址的描述,很少用“大”和“小”来形容;对应地,用的更多的是“高”和“低”;很不幸地,这对术语直接按字面翻译过来就成了“大端”和“小端”,让人产生迷惑也不是很奇怪的事了。  不过给我启发的是,在裘宗燕翻译的《程序...

2020-08-05 11:01:57 482

原创 I2C、UART、SPI详解及区别

一、通讯1. 通讯的概念 我们把计算机与外界的信息交换称之为通信。2. 通讯方式分类 基本的通信方式有两种:并行通讯和串行通讯。 并行通信:所传送数据的各个位是同时发送或接收。速度快,占用引脚资源多 串行通信:所传送数据的各位按顺序一位一位地发送或接收。占用引脚资源少,速度相 对较慢3. 串行通讯种类 串行通讯的种类有:异步通讯和同步通讯1) 异步通讯:不带时钟同步信号,不是使用同一个时钟源。如UART、单总线2) 异步通讯数据...

2020-08-03 20:31:18 6066

原创 多进程通信(IPC)

IPC:Inter Process Communication一、管道PIPE1、特点只能在亲缘关系进程间通信(父子或兄弟) 半双工(固定的读端和固定的写端) 它是特殊的文件,可以用 read、write 等,只能在内存中2、主要API1)创建管道原型:int pipe(int pipefd[2]);参数:pipefd 做输出参数使用,存放是管道的读,写文件描述符。pipefd[0] 存放读,pipefd[1]存放写2)读写把将管道当作文件,使用read、wri...

2020-08-02 22:36:36 563

原创 网络编程:TCP与UDP

一、TCP:面向连接的、可靠的、字节流服务服务器端一般步骤是:1、socket():创建一个socket,设置协议、TCP\UDP2、setsockopt():可选,设置socket属性,必须在bind之前3、bind():绑定IP地址、端口等信息到socket上4、listen():开启监听5、accept():接收客户端上来的连接,连接上后,生成新套接字用于与客户端通信,旧的套接字仍用于监听6、send()、recv():收发数据7、close():关闭网络连接客..

2020-08-02 18:50:00 203

原创 网络通信:TCP与UDP的区别

一、TCP(Transmission Control Protocol,传输控制协议): 面向连接的、可靠的、字节流服务。1、面向连接: 在收发数据前,必须和对方建立可靠的连接,一个TCP接连需要经“三次握手”建立,而断开需要经“四次挥手”,大大提高了数据通信的可靠性,2、可靠传输: 依靠TCP的序号和确认号。序号可保证有序传输,接收端接收成功需要返回一个确认(ACK),否则超时未返回ACK,对应数据将被重传。3、面向字节流: TCP不像...

2020-08-02 17:38:44 163

转载 System V信号量 与 Posix 信号量

转载自:https://www.cnblogs.com/Zoran-/p/5819256.html一、函数上的区别 信号量有两种实现:传统的System V信号量和新的Posix信号量。它们所提供的函数很容易被区分:对于所有System V信号量函数,在它们的名字里面没有下划线。例如,应该是semget() 而不是sem_get()。然而,所有的的Posix信号量函数都有一个下划线。下面列出了它们提供的所有函数清单:Systm V POSIX 有名信号量 ...

2020-08-02 00:39:45 969

转载 线程互斥与同步、互斥锁与信号量

转载自:https://www.cnblogs.com/baizhanshi/p/6844356.htmlhttps://www.cnblogs.com/alinh/p/6905221.html一、互斥与同步互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。 同步其实已经实现了互斥,所以同步是一种更为复杂的互斥。 互斥是一种特殊的同步

2020-08-02 00:06:31 249

转载 TCP连接的“四次挥手”(Four-Way Wavehand)

转载自:https://www.cnblogs.com/AhuntSun-blog/p/12037852.html一、“四次挥手”的详解所谓的四次挥手即TCP连接的释放(解除)。连接的释放必须是一方主动释放,另一方被动释放。以下为客户端主动发起释放连接的图解:挥手之前主动释放连接的客户端结束ESTABLISHED阶段。随后开始“四次挥手”:(1)首先客户端想要释放连接,向服务器端发送一段TCP报文,其中:标记位为 FIN,表示“请求释放连接“; 序号为 Seq = U; 随后

2020-07-28 22:27:30 364

转载 TCP连接的“三次握手”(Three-Way Handshake)

转载自:https://www.cnblogs.com/AhuntSun-blog/p/12028636.html一、TCP报文格式其中比较重要的字段有:(1)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3)标志位(Flags):共6个,即..

2020-07-28 22:25:46 550

转载 zigbee 休眠与唤醒

转载自: https://www.cnblogs.com/killer-xc/p/4827754.html环境:TI CC2530一、概念CC2530有五种工作模式。分别为Active mode、Idle mode、PM1、PM2、PM3,其中,PM2模式比较省功耗而且可以被定时唤醒;PM3模式最省电但是只能被外部中断唤醒。开启睡眠功能很简单:1、首先确认f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE;2、然后在IAR的Options-..

2020-07-19 22:23:12 1287

原创 zigbee 信道切换过程解析

环境:TI CC2530关键命令:Mgmt_NWK_Update_notify : 路由器通知协调器考虑切换信道(不一定会切换)Mgmt_NWK_Update_req :协调器通知所有路由器进行信道切换一、发送 Mgmt_NWK_Update_notify 所有路由器和协调器会时刻计算传输数据总数和传输失败数量,当传输总数超过 ZDNWKMGR_MIN_TRANSMISSIONS 并且失败率超过 ZDNWKMGR_CI_TX_FAILURE,则认为当前信...

2020-07-19 21:56:44 1675

原创 Zigbee入网流程

本示例采用关联方式(Associate)入网,总体流程如下:一、入网前准备1、coordinater 发出Permit Joining Request广播,允许设备入网,时长一般为180s2、待入网设备启动扫网操作后,将在预置信道发出Beacon Request广播,zigbee信道为11~26,一般考虑效率和与WiFi信道干扰问题,会选择几条优先信道进行扫网。二、Beacon在收到Beacon Request后,同一信道的不同PAN的协调器会发出Beacon回应,待入网设备

2020-07-13 13:41:23 5370

转载 Zigbee3.0 协议特性

转载自:https://www.cnblogs.com/bitconn/p/9389426.htmlZigBee协议有如下特性:支持多种网络拓扑,比如点对点,点对多点,自组网; 低工作占空比能力,提供长电池供电的可能; 低延迟; 采用DSSS扩频技术; 每个网络最高可支持65,000节点 128-bit AES 加密 碰撞避免,重试和应答确认ZigBee 3.0软件栈集成了一个“基础设备”,它为配置节点加入到网络提供一致的行为。它提供了一套通用的配置方法,包括Touchlink,.

2020-07-13 11:48:23 1649

原创 栈与队列之间的互相转换

一、基本概念1、栈stack:先进后出 FILO2、队列queue:先进先出 FIFO二、两个栈实现一个队列1、入队:push到栈12、出队:(1)若栈2为空,push到栈2,再从栈2 依次pop(2)若栈2非空,先将栈2 数据依次pop,直到为空,再执行步骤(1)三、两个队列实现一个栈1、入栈:push数据 “abc” 到一个不为空的队列,若全为空,即均可2、 出栈:(1) 将队1数据(除了最后一个)“ab” push到队2(空)中,将队1中..

2020-07-02 09:18:44 315

转载 算法的时间复杂度和空间复杂度

转载于:https://www.jianshu.com/p/1ac6ad4069f8https://www.jianshu.com/p/88a1c8ed6254一、时间复杂度(Time complexity)一个算法语句总的执行次数是关于问题规模N的某个函数,记为f(N),N称为问题的规模。语句总的执行次数记为T(N),当N不断变化时,T(N)也在变化,算法执行次数的增长速率和f(N)的增长速率相同。1、常数阶O(1),不存在循环结构,如以下代码段int sum = 0, n =.

2020-06-29 23:15:18 482

原创 链表反转(迭代方式、递归方式)

关于链表(单向)的反转,常用的就是迭代方式和递归方式,网上有很多相关的讲解,但是我还是花了些时间才弄懂,为了加深理解记忆,特意写了博客。这是第一次写博客,全为个人见解,有任何不妥地方,请各位多多包涵、指正。一、迭代方式这是个人认为比较容易理解的,迭代是从表头开始处理,依次将每个节点变成新的表头,并将其地址域指向上一个节点(即旧的表头,若为第一个节点,则地址域指向NULL),以下面链表作为例子:(1)指针P指向表头,开始处理(2)节点1作为新表头,其地址域指向NULL,实际上就是新表.

2020-06-28 22:29:51 1492

空空如也

空空如也

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

TA关注的人

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