自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Justice Gao

专注无线网络领域,wifi,zigbee,ble,4G,NB-iot.....

  • 博客(144)
  • 资源 (12)
  • 收藏
  • 关注

原创 【泰凌微TLSR8258 zigbee】OTA升级操作方法

SDK 中要求待升级固件的⽂件版本必须⼤于当前的⽂件版本,否则,当 Client 端发起 OTA 查询时,Server 端将回复NO_IMAGE_AVAILABLE。假设当前正在运⾏ Firmware 的固件,当设备执⾏ OTA 升级时,新的固件数据将被存储到 OTA-Image,在 OTA结束并且验证通过后,将重启并运⾏ OTA-Image 的固件。OTA 终端设备在调⽤ ota_init 函数后,将会⾃动重载上⼀次的 OTA 进度信息,如果⼊⽹成功,将在设置的seconds 秒后开始 OTA 请求。

2023-04-01 16:25:50 1274 1

原创 泰凌微TLSR8258 zigbee如何使用.bat脚本编译程序

该方法适用于一些需要在远端服务器自动编译的应用场景,以及不使用IDE软件编写代码,而是用其他VSCode、source insight代码编辑软件

2023-04-01 16:04:42 256

原创 泰凌微TLSR8258 zigbee开发环境搭建

建议使用第二个,该软件可以更加直观看到zigbee空中协议的内容,而第一个是原始数据,需要自己去解析,抓包看数据非常不方便。• 下载调试工具: Telink Burning and Debugging Tools。某宝上买一个CC2530 zigbee dongle工具。• OTA 编码转换工具: tl_ota_tool。

2023-04-01 15:50:18 752

原创 Dropout Voltage什么意思

对于Dropout voltage到底代表什么有些不太确定画圈的地方“Dropout voltage = 260 mV (VIN = 95% VOUT(nom), IOUT = 100 mA)”意思是假如输出电压设置为10V,VIN的输入电压为9.5V(VIN=10V*95%=9.5V)此时的实际输出电压为9.24V(9.5V - 260mV)吗?

2023-03-11 07:26:39 482 1

原创 FreeRTOS系列第1篇---为什么选择FreeRTOS?

1.为什么学习RTOS?         作为基于ARM7、Cortex-M3硬件开发的嵌入式工程师,我一直反对使用RTOS。不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险,更重要的是我认为绝大多数基于ARM7、Cortex-M3硬件的项目,还没...

2023-03-11 07:23:08 1439

原创 C语言字符串转十六进制

#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#define MAX_DATA_SIZE 1024static int convert_string2hex(unsigned char *in_data, int in_data_len, unsigned char *out_data, int *out_data_len){ int

2023-03-11 07:21:50 995

原创 ESP32如何引用自定义.a静态库

(2)libtest.a报错某.c文件undeclare未定义声明,对应的是test2.h中的接口名,则说明在主函数中没有实现,刚开始调试的时候,可以通过打桩函数写空接口,编译通过后再一个个去实现。(3)主函数中报错不存在libtest.a静态库中的接口,则检查设置引用静态库中步骤,检查libtest.a编译的时候是不是有编译宏设置之类的。(1)编译生成静态库,方法可参考。

2023-03-10 22:07:38 775

原创 ESP32如何用makefile直接编译生成.a静态库

开发过esp系列的攻城狮们都知道,esp32的sdk包含了编译器、组件代码和例程代码,编译都是基于cmake的,都是整体一起编译,CMakeList.txt,component.mk,project.mk等等一系列和编译相关的文件,如果你想要自己编译一个自己的静态库放到esp32中去使用,这个就很麻烦了,对于不熟悉编译内容的小伙伴来说,下面,我给大家提供一个方法,直接通过makefile编译静态库。(2)指南非常详细,按照步骤安装好,根据系统是windows还是linux的,自行选择。

2023-03-08 22:32:04 735

原创 PMP考试答题技巧及注意事项

pmp项目管理考试注意事项以及答题技巧

2023-02-05 15:59:42 457

原创 关于iOS下扫描蓝牙ibeacon广播的rssi一直为0的问题解决方法

iOS下和安卓对ibeacon的广播中的rssi值过滤策略不一样,如果rssi值为正值,ios会过滤扫描不到,安卓还是可以的。(2)iOS下微信小程序或者app软件扫描到的蓝牙ibeacon广播的rssi一直为0,无法计算定位到信号的位置。(1)安卓下微信小程序或者app软件扫描到的蓝牙ibeacon广播的rssi为正常,且可以计算大致的距离。将rssi的值改为负值,如广播的rssi为0x43,则需要改为0xc3才行。

2022-09-17 19:40:19 848 1

原创 cc2640蓝牙数据接收丢包问题

问题描述该问题的出现情况主要是连续发送多帧数据的时候,会出现上一帧数据被下一帧数据覆盖掉解决方法找到simpleBLEperipheral_charValueChangeCB这个事件函数中,原本蓝牙接收的数据会被推到队列中,由simpleBLEperipheral_enqueueMsg这个函数处理,但是当对方蓝牙数据帧发送过快,间隔太短时,数据会出现丢包问题,所以直接在simpleBLEperipheral_charValueChangeCB函数解析处理数据,而不是放到simpleBLEperiphe

2022-03-20 18:52:14 1148

原创 Linux网络编程常见错误码及分析

#define EPERM 1 /* Operation not permitted */ 操作不允许#define ENOENT 2 /* No such file or directory */ 文件或路径不存在#define ESRCH 3 /* No such process */ 进程不存在#define EINTR 4 /* Interrupted system call */ 中断

2021-07-25 09:51:20 2312 1

原创 linux命令dpkg安装deb文件和卸载应用

deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.debdpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix 等。以下是一些 Dpkg 的普通用法:1、dpkg -i <package.deb>安装一个 Debian 软件包,如你手动下载的文件。2、dpkg -c

2021-05-18 09:25:52 2225

原创 如何利用Beyond Compare更新文件夹内容

适用场景(1)更新备份的软件工程(2)由于编译环境,拷贝多份源代码操作方法(1)打开Beyond Compare软件(2)选择文件夹比较(3)选择比较的两个文件夹(4)加载完成后,可以看文件夹下不同的文件内容变化(5)若左侧是最新的源代码,则点击更新到右侧...

2021-04-20 11:05:14 363

原创 zigbee学习之zigbee设备对象(ZDO)

1 概述ZigBee 设备对象是一个应用程序,使用了网络和应用支持子层原语来执行 ZigBee 终端设备,ZigBee 路由器和ZigBee 协调器。ZigBee 设备对象 Profile 使用了 Clsuter 来描述其原语。ZigBee 设备 Porile Clusters 不使用属性,类似于一个信息传输协议中的信息。在ZigBee 设备 Profile 内使用Cluster 标识符来枚举 ZigBee 设备对象内使用的信息。ZigBee 设备对象还使用了配置属性。这些属性不是任何Cluster

2021-04-13 13:41:16 1417

原创 Linux中常用的命令操作

查看ls 查看当前目录下的内容ll 查看当前目录下的内容详情cat xxx 查看文本内容解压缩

2021-02-08 11:13:42 167

原创 zigbee学习之JN5169 串口UARTs

本章描述了使用集成外设API的功能对uart (Universal Asynchronous Receiver transmitter)的控制。JN516x微控制器有两个uart,表示为UART0和UART1,它们可以独立启用。这些uart是16550兼容的,可用于串行数据的输入/输出,可编程波特率高达4Mbps。6.1 串口信号和引脚UART采用以下信号接口与外部设备连接:传输数据(TxD)输出-连接到外部设备上RxD接收数据(RxD)输入-连接到外部设备上TxD请求发送(RTS)输出-

2021-02-07 14:27:29 424 1

原创 zigbee学习之JN5169 DIO数字输入/输出

本章描述了使用集成外设API的功能对DIOs (Digital input / output)的控制。JN516x微控制器有20条DIO线,编号0到19。每个引脚可以单独配置为输入或输出。另外,DIO引脚与以下片上外设/功能复用:ADC比较器串口UART定时器I2CSPI天线多样性脉冲计数器当相应的外设/特性被启用时,复用的DIO不可用。复位后,所有的外设被禁用和DIOs被配置为输入。除了正常的操作,当配置为输入时,DIOs可以用来产生中断并从休眠中唤醒设备。请注意DIOs触发的

2021-02-05 15:54:42 448 1

原创 zigbee学习之JN5169 ADC外设

本章描述了使用集成外设API的功能对模拟外设的控制。4.1 ADCJN516x微控制器包括一个10位模拟数字转换器(ADC)。ADC对模拟输入信号进行采样,以产生输入电压的数字表示。它在某一时刻对输入电压进行采样,并保持该电压(在电容器中),同时将其转换为10位二进制值-总采样/转换持续时间称为转换时间。ADC可以周期性地采样,以产生一系列数字值来表示输入电压随时间的变化。抽样事件发生的速率称为抽样频率。根据奈奎斯特采样定理,采样频率必须至少是输入信号中待测最高频率的两倍。如果输入信号包含超过采样频率

2021-02-05 10:26:13 291 1

原创 zigbee学习之ZDP枚举描述(返回值说明)

本小节解释了ZDP 使用的枚举的含义。表2.137 展示了ZDP 枚举值的描述。

2021-02-04 15:34:50 300

原创 zigbee学习之设备profile服务器服务

设备Profile 服务器服务支持设备和服务发现请求,终端设备绑定请求,绑定请求,取消绑定请求和网络管理请求的程序。另外,服务器服务支持传输这些响应返回到请求设备。对于发给服务器的所有的广播地址请求(任意一种广播地址类型),如果不支持该命令,服务器应丢掉该数据包。对于任何广播寻址的客户端请求,错误状态不应单播返回给本地设备,包括但不限于服务器不支持的请求。对于发给服务器的所有的单播地址请求,如果不支持该命令,服务器应制定一个只包含响应Cluster ID 和状态域的响应数据包。响应Cluster ID

2021-02-04 15:29:59 213

原创 zigbee学习之设备profile客户端服务

设备 Profile 客户端服务支持从客户端到服务器传输设备和服务发现请求,终端设备绑定请求,绑定请求,取消绑定请求,以及网络管理请求。另外,客户端服务支持从服务器接收这些请求的响应。1 设备和服务发现客户端服务表2.43 列出了设备 Profile、设备和服务发现客户端服务支持的命令。这些命令将在以下分节一一讨论。2 终端设备绑定,绑定,取消绑定和绑定管理客户端服务原语表2.66 列出了设备 Profile 支持的原语:终端设备绑定,绑定和取消绑定客户端服务。这些命令将在下面的分节中一一讨论

2021-02-04 15:23:00 206

原创 zigbee学习之设备profile概述

1. 范围ZigBee 应用层规范描述了常用ZigBee 设备功能,比如绑定、设备发现和服务发现是如何在ZigBee设备对象内部实现的。ZigBee 设备Profile 通过定义cluster 能够像任何的ZigBee profile 一样运行。不像应用程序特定的 profile,ZigBee 设备 Profile 内的cluster 定义了所有 ZigBee 设备支持的功能。和任何profile 文件一样,本文件详细叙述了强制和/或可选的cluster。2. 设备profile概述设备Profile

2021-02-04 14:24:21 808

原创 zigbee学习之zigbee应用框架

1. 创建一个zigbee profile一个ZigBee 网络设备之间通信的关键是一个关于profile 的协议。一种profile 的例子是家庭自动化。这个ZigBee profile 允许一系列设备类型交换控制信息,以形成一个无线家庭自动化应用。这些设备的目的是交换已知信息来实现控制,比如开关灯,给照明控制器发送一个照明传感测量,或如果一个位置传感器探测到移动时发送一个警报信息。另一种类型profile 的例子是定义了ZigBee 设备之间普通行为的设备profile。为了说明这一点,无线网络依

2021-02-03 18:11:23 360 2

原创 zigbee学习之APS管理服务

APS 管理实体S A P(APSME-SAP)支持上层和APSME 之间管理命令的传输。APSME-SAP原语访问综述:APSME-BINDAPSME -UNBINDAPSME-GETAPSME-SETAPSME-ADD-GROUPAPSME-REMOVE- GROUPAPSME-REMOVE- ALL-GROUPS1. 绑定原语这组原语定义了设备的上层如何往其本地绑定表中增加(提交)一个绑定记录,或从其本地绑定表中移除一个绑定记录。只有支持绑定表或绑定表缓存的一个设备,可以处理

2021-02-03 16:18:19 199

原创 zigbee学习之APS数据服务

APS子层提供了两种服务,通过两种服务访问点( SAPs)访问。 它们是APS数据服务,通过APS子层数据实体SAP ( APSDE-SAP) 访问, 以及APS管理服务, 通过APS子层管理实体SAP ( APSME-SAP)访问。这两种服务通过NLDE-SAP 和(在有限的范围内) NLME-SAP接口 ,提供了NHLE和NWK层之间的接口。 NWK层和 APS子层之间的 NLME-SAP接口只支持 NLME-GET和NLME-SET原语:所有其它NLME-SAP原语只能通过ZDO访问 。 除了这些外部

2021-02-03 15:48:52 518

原创 zigbee学习之JN5169系统控制器

本章主要介绍系统控制器特性以及各功能函数的使用方法。时钟管理电源管理电源电压监测芯片复位中断3.1 时钟管理系统控制器为JN516x微控制器提供时钟,主要分四个模块:系统时钟域、外设时钟域、CPU时钟域和32kHz时钟域。系统时钟域系统时钟是一个高速参考时钟,当芯片完全运行时,外围时钟和CPU时钟由它派生。此域的时钟来自以下之一:外部32 mhz晶体振荡器内部高速RC振荡器该晶体振荡器由连接到设备引脚4和5的32MHz外部晶体驱动。该域将产生一个32兆赫兹系统时钟时,来自晶体

2021-01-29 18:28:03 419

原创 secureCRT保存带时间戳log方法

(1)选择会话选项(2)选择“日志文件”,修改红框中的两个设置,点击确定(3)关闭重启,选择保存日志文件路径和名称,默认名称session.log(4)完成,所有log都会自动保存

2021-01-27 17:05:15 2006 1

原创 zigbee学习之JN5169通用函数

通用函数general functions主要包括:(1)API初始化;(2)无线电传输功率的配置;(3)使用随机数生成器;(4)访问内存非易失性内存;(5)保留休眠状态下的调试信息1、API初始化在调用来自JN516x集成外设API的任何其他函数之前,必须调用函数**u32AHI_Init()**来初始化API。这个函数必须在JN516x微控制器的每次复位和唤醒(退出休眠模式)之后调用。注意:如果您使用JenOS (Jennic操作系统),则不能在代码中显式地调用u32AHI_Init(

2021-01-13 17:05:27 438 1

原创 ZigBee学习之NXP JN5169开发环境搭建

nxp官网下载资源:https://www.nxp.com.cn/pages/jn516x-7x-zigbee-3-0:ZIGBEE-3-01、下载JN-SW-4141这是一个基于eclipse的IDE开发环境,名称为BeyondStudio for NXP。1.1 安装BeyondStudio for NXP单击 I Agree,一路Next,出现下面界面,可在此更改安装路径,然后Install,最后等待安装完成,点击Finish。2、下载JN-SW-4170,SDK包该安装路径默认与Be

2021-01-13 14:11:22 642 1

原创 linux应用程序判断网络是否连通

int Net_is_Ok(char *ip){ int i, status; pid_t pid; printf(">>>>>>>>>>>>> ping_status\n "); // 不同则循环检测多次 for (i = 0; i < 3; ++i) { // 新建一个进程来执行ping命令 if ((pid = vfork()) <

2020-12-28 15:35:06 688

原创 freertos学习之临界区处理

简介每个进程中访问临界资源的那段代码称为临界区(Critical Section) (临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。多个进程中涉及到同一个临界资源的临界区称为相关临界区。注:多线程并发访问全局变量也是临界区问题程序调度法则进程进入临界区的调度原则是:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。任何时候,处于临界区内的进程不可多于一个。

2020-12-01 21:07:57 6611 1

原创 freertos学习之任务调度切换

FreeRTOS 的任务具有如下几种状态:运行Running就绪Ready阻塞Blocked挂起Suspended除了运行状态之外的状态统称为非运行状态。因为 FreeRTOS 是为单CPU设计的系统,在任何时刻最多只能允许一个任务处在运行状态,哪怕看起来好像有多个任务同时在运行——这只是多个任务不停地切换带来的效果。当一个任务从运行状态切换到非运行状态时,执行时的现场——CPU寄存器被保存在任务的私有堆栈中;在重新回到运行状态时,再从堆栈中恢复之间保存的寄存器

2020-12-01 20:29:34 724

原创 Websocket基础知识篇

WebSocket介绍websocket是HTML5的一种新协议,允许服务器向客户端传递信息,实现浏览器和客户端双工通信。先简单介绍下WebSocket。 我们都知道Http是处于应用层的一个通信协议,但是只支持单向主动通信,做不到服务器主动向客户端推送消息。而且Http是无状态的,即每次通信都没有关联性,导致跟服务器关系不紧密。为了解决和服务器长时间通信的痛点呢,HTML5规范引出了WebSocket协议(知道这名字咋来的吧,人家HTML5规范引出的,随爸姓),是一种建立在TCP协议基础上的全双工通信

2020-12-01 16:08:18 740

原创 Ubuntu输入正确密码后无法登陆桌面仍然跳转输入登陆界面的解决方法

由于安装软件改错了环境变量,导致桌面循环登录,而且ctrl+Alt+F1进入控制台后输入任何命令都无效解决办法:一. 控制台输入命令:echo $PATH查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin二. 如果没有,先用临时环境变量(重启后消失)控制台输入:export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr

2020-11-27 09:41:57 1551 5

原创 进程间的五种通信方式

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:(1)它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。(2)它只能用于具有亲缘关系的进

2020-11-26 19:20:20 323

原创 网络编程socket

socket端口号范围1~65535。其中0不使用,1-1023为系统端口,也叫BSD保留端口。0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用;1024~65535为用户端口,又分为:BSD临时端口(1024-5000)和BSD服务器(非特权)端口(5001-65535)。其中:1024-5000: BSD临时端口,一般的应用程序使用1024到4999来进行通讯;5001-65535:BSD服务器(非特权)端口,用来给用户自定义端口。Socket根据数据传输

2020-11-25 18:50:25 139

原创 Source Insight 最简单安装

Source Insight 4.0 最简单的破解安装1. EXE及破解lisence下载地址:http://download.csdn.net/download/jdsnpgxj/102131622. 下载后,直接打开其中的source insight 4.0,在弹出的对话框中选择第三项并将下载的文件si4.pediy.lic选中并“Next”即可破解!

2020-11-24 09:24:38 2786 1

原创 UltraEdit 工具jiehuo教程

1、工具准备(1)官网下载 UE (2)下载注册机 2、安装完成之后,打开UE运行文件,会提示用户激活(1)断网(2)点击“激活”,PS:这里的ID和密码随便填写(3)点击“激活”后会出现下图,点击“脱机激活”(4)这一步会自动产生用户码1和2;...

2020-11-24 09:23:51 20474 7

原创 matlab2016a安装

1、下载MATLAB 2016a安装文件2、下载Matlab 2016a 破解文件3、解压安装文件,安装文件为iso格式,但是不能通过虚拟光驱安装,需要将iso文件用解压软件解压。4、点击setup.exe,进行安装。5、点击setup.exe,之后稍等一会儿,MathWorks安装程序启动,启动后选择“使用文件安装密钥 不需要Internet连接”6、点击下一步,是否接受许可协议的条款哪儿...

2020-11-20 18:16:52 45227 4

嵌入式操作系统笔试题汇总

操作系统各大公司笔试题汇总.doc操作系统各大公司笔试题汇总.doc操作系统各大公司笔试题汇总.doc操作系统各大公司笔试题汇总.doc操作系统各大公司笔试题汇总.doc操作系统各大公司笔试题汇总.doc

2020-09-22

SIM7600 USB驱动 linux

开发环境 操作系统:OpenWrt(linux) 客户机:MT7688 拨号方式:NDIS------>wwan0

2020-07-28

bayes定位算法.rar

BCS 理论是由 Shihao Ji 等提出的,BCS 理论解决问题的基本思想是为 CS的恢复问题建立了一个贝叶斯框架,将贝叶斯思想融入到 CS理论中,通过统计学解决问题的新视角来重新对待传统 CS理论的信号重构问题

2020-04-22

电信NB-iot平台对接资料

电信NB-IOT0501对接电信平台的资料,对接成功后,可以直接通过AT命令使用COAP协议进行数据传输

2018-07-20

KEIL MDK5.23安装包及破解工具

keil MDK5.23安装包及破解工具,可用于开发STM32、maxim等常用嵌入式软件

2018-03-20

STM32F103RC+ADC+DMA多通道采样LCD显示

MINI STM32开发板上ADC采用DMA方式进行多通道采样,ADC采用循环采样方式,并将8通道采样数据显示在LCD上

2018-03-19

matlab动态显示ecg心电信号

matlab动态显示ecg心电信号,可以动态移动x轴的显示范围

2018-03-13

matlab2016a安装与破解

matlab2016a安装文件与破解教程,有详细的doc文件详细说明安装过程及破解方法

2018-03-11

IAR 7.80.4安装包

IAR Embedded Workbench 是瑞典 IAR Systems 公司为微处理器开发的一个集成开发环境。 不同的微处理器,需要安装不同内核平台的 IAR 软件,所以,安装 IAR 之前,需要根据目标微 处理器,选择合适版本的 IAR 软件。本教程以 IAR EMBEDDED WORKBENCH FOR ARM7.8 为例,演示 IAR 安装及破解的全过程。 其他版本 IAR 安装大同小异。

2018-01-28

IAR破解工具及方法步骤

IAR7.80.4破解工具及破解方法,实用资源。IAR Embedded Workbench 是瑞典 IAR Systems 公司为微处理器开发的一个集成开发环境。 不同的微处理器,需要安装不同内核平台的 IAR 软件,所以,安装 IAR 之前,需要根据目标微 处理器,选择合适版本的 IAR 软件。本教程以 IAR EMBEDDED WORKBENCH FOR ARM7.8 为例,演示 IAR 安装及破解的全过程。 其他版本 IAR 安装大同小异。

2018-01-28

sourceinsight安装包及破解工具

sourceinsight安装包及破解工具,配合对应的博客文章使用

2018-01-18

MAX32625开发工具包

支持MAX32600、MAX32625、MAX32620和MAX32626微控制器的开发,里面包括了ARM KEIL源代码和IAR源代码,以及基于eclipse的C++源代码

2017-05-11

空空如也

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

TA关注的人

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