- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 4G定位系统连接腾讯云
系统主控:STM32F030C8T6 或 STM32F030F4P64G+GPS模组:芯讯通 A7670高精度温湿度传感器:DHT20语音播报功放:A/B类通信协议:MQTT数据格式:JSON硬件购买链接:查看STM32的学习链接:查看4G+GPS模组学习链接:查看学习过程分享:1. 由于最早的需求是获取到定位信息进行上报,所以选择了STM32F030F4P6这颗主控的板子(可以满足项目需求了哈);结果后期增加了很多需求,IO口不够了,因此又购买了STM32F030C
2022-05-12 00:11:45 1240
原创 zigbee深入篇——优化ZStack协调器工程结构
*** 本章学习目的 ***1)优化出专门为协调器打造的工程结构。2)实现第1章串口通信协议。工程结构我们将ZStack放在ZBProject目录下,优化后的工程结构如下:APPs:存放我们自己的应用代码。Components:方案商的组件。Libraries:方案商的库文件。Projects:存放工程文件目录。我们可以在Projects中直接打开工程:整个Projects目录结构如下:category:存放不同设备类型的工程文件,比如协调器,智能插座
2020-11-22 22:46:56 645
原创 rk3308应用篇 —— Linux 串口异步I/O框架
主框架Demo代码,初始版本V1.0.0,主要帮助大家对框架的熟悉。整个结构基于link(link.h link.c)的异步I/O机制,框架结构:实际上,整个应用程序包含的模块远比这个复杂;为了能让学者比较容易上手,这里面其实只是把最基础的部分拿出来。serial :串口程序zb_msg : 串口协议解析device :设备管理iot_schd : 调度器serial串口通信类,非常简洁,serial.h 和 serial.cpp可以直接移植到产品...
2020-10-13 19:14:01 851
原创 嵌入式C语言深入篇之 —— 变量
新建一个物联网行业交流学习QQ群,感兴趣可加:928840648=====CUT=====变量可执行程序存储区当一个C/C++原码文件被编译链(比如gcc/g++)编译及链接成为可执行程序后,由4个段组成,分别是:代码段,数据段,栈,堆。代码段(.text)包含代码逻辑(函数),以及宏定义(#define)常量。数据段包含3部分:.bss,.rodata,.data。 .bss: Block Started by Symbol,存放程序中未初始化的全局变量。...
2020-10-10 20:12:59 1691 2
原创 zigbee系统篇——ZStack系统抽象层详解
了解硬件和更多资料可点击:点击了解新建一个物联网行业交流学习QQ群,感兴趣可加:928840648=====CUT=====*** 本章学习目的 ***1)理解Z-Stack3.0系统抽象层(OSAL)。2)掌握OSAL的使用。4.1 OSAL的运行过程OSAL也就是系统抽象层,其实并不是真正意义上的操作系统,不过实现了协议栈(ZStack)运行所必需的任务调度功能、内存管理、中断管理等基本功能。为了方便学习,我们将工程进行的裁剪,去除文档和附件,只留下协议栈的组件和工程文件:.
2020-10-10 16:30:03 1568
原创 zigbee系统篇——ZStack文件框架
了解硬件和更多资料可点击:点击了解新建一个物联网行业交流学习QQ群,感兴趣可加:928840648=====CUT=====本章目的:1)了解Z-Stack3.0的文件组织形式。2)了解Z-Stack3.0的框架结构。Z-Stack 3.0.1 SDK文件组织形式如果大家按照默认的位置安装了Z-Stack3.0,那么可以在C盘下找到相应的文件目录: ZStack 3.0.1就是TI提供的ZigBee解决方案软件支持包(SDK),SDK并不是全开源的,没有开源的部分是..
2020-10-09 22:56:03 1618 1
原创 rk3308 BSP系统(Linux网关) —— RGB调色灯三路PWM驱动
硬件基础在我们的开发板上集成了一颗RGB灯组,引脚连接着主控的三路PWM输出,因此我们可以通过三路PWM输出进行调色的功能,硬件原理图如下:内核设备树我们把设备树补丁文件放在目录:~/share/patchs/pwm-dts板载的RGB灯珠连接的是主控的三路PWM(PWM1,PWM2,PWM3);这三路PWM的设备树节点在rk3308.dtsi中;默认情况下是disabled的状态,我们只需要将disabled改成okay即可,补丁文件其实就是做了这个事情,
2020-09-25 17:57:00 754
原创 zigbee基础篇 —— NorFLash(M25PExx)
开发板中带有一颗M25PE80的芯片,M25PE80是一款NorFlash,容量是8MBit也就是1MByte = 1024KB,这是个什么概念呢,CC2530F256的内部Flash容量是256KB,也就是说M25PE80的存储容量是CC2530F256容量的4倍。flash按照内部存储结构不同,分为两种:nor flash和nand flash。 NorFLASH使用方便,易于连接,可以在芯片上直接运行代码,稳定性出色,传输速率高,在小容量时有很高的性价比,这使...
2020-09-25 12:08:22 558
原创 rk3308 BSP系统(Linux网关) —— WiFi-STA工作模式
内核配置修改后的配置文件我们放在目录:~/share/patchs/wifi-config-dts和原生配置文件比较,差异点如下:CONFIG_RTL8189FS=y指定WiFi主控芯片型号:RTL8189FS。CONFIG_MWIFIEX=y外接WiFi设备(类似USB网卡)。CONFIG_MWIFIEX_SDIO=y外接WiFi设备SDIO接口支持。我们需要把改动的代码合并过去~内核设备树kernel/arch/a
2020-09-25 11:56:38 1204
原创 rk3308 BSP系统(Linux网关) —— Uboot串口交互终端
硬件连接我们需要一个USB转串口线来调试,硬件随便都可以,比如: 其他转换芯片如CH340,PL2303,FTP232也都是可以的。板上可以看到如下一个接口:我们使用串口2也就是UART2来做调试口,将USB转串口线的RX,TX,GND连接到板子上UART2的TX,RX,GND。波特率配置如果CONFIG_BAUDRATE不是115200,修改为115200,因为不是所有芯片都可以支持高波特率的(15000000):修改后编译U-Boot并烧录。...
2020-09-25 11:04:24 1120
原创 代码分享 —— Linux TCP服务器/客户端程序(link/linker)
代码目录树: 纯C语言编程只需要两个核心文件: link.h link.c 即可;C++架构的程序需要用到 link.h link.c还有linker.h linker.cpp,后者是在前者的基础上做了封装。接口的使用如下,TCP创建服务器代码:如果是C语言:C语言链接TCP服务器:核心代码采用epoll监听回调的方式实现,核心代码就是link.h和link.c,基本架构如下:由于TCP是流式数据,因此收到数据后我们通过Parser解析一个完整的报文,比如...
2020-09-24 22:44:34 586
原创 rk3308 BSP系统(Linux网关) —— 交叉编译
我们的整个软件工程目录在:~/workspace/Embedded_kits_rk3308prebuilts 目录存放 U-Boot、Kernel 编译使用的交叉编译工具链;u-boot 目录存放着 U-Boot 部分的源码;kernel 为内核部分源码;buildroot 目录存放 buildroot 开源项目代码,可定制根文件系统;device 目录存放板级配置及一些预置文件,开机脚本等;external 目录存放 SDK 相关库及工具源码;rkbin 目录存放 Rock
2020-09-24 20:03:35 1090 2
原创 嵌入式C语言深入篇之 —— 数据类型
数据类型类型定义C语言标准中,常用的类型如下表格: 类型 存储大小 取值范围 signed char 1 字节(Byte),8bits -128 到 127 unsigned char 1 字节,8bits 0 到 255 short 2 字节,16bits
2020-09-22 11:50:25 660
原创 ZStack禁止入网
为了防止非法的节点加入到我们的zigbee网络中,常用的做法是设置入网窗口,还有配对的方式。1. 配对的方式可以是按键的形式,或者直接入网。2. 设置入网窗口:协调器在启动后可以设置一个事件,事件到时间后就不允许设备入网,这个时间称为入网窗口,不允许设备入网有以下几点:一: 设备开机后处于不允许入网状态这可以设置一个变量,在NLMEDE.h 中的 NLME_PermitJoin
2016-04-11 16:05:22 1934
原创 zigbee ACK
zigbee ACk有两种,即 APS ACK 和 MAC ACkMAC ACk是在802.15.4里面实现,抓包时我们会发现,单播一个数据包后会有一个确认帧,那就是MAC ACKAPS ACK属于应用层的ACk,实际上目标设备收到数据包后,如果源设备需要APS ACk( AF_DataRequest 函数中的option设置 ),那么目标设备会回一个数据包给源设备,源设备收到该确认用的数
2016-04-08 18:22:46 1708
原创 IEEE802.15.4 帧格式
MAC层:帧头(MHR)组成: 帧控制域 序列码 寻址信息帧 尾(MFR)组成: FCS(16位帧校验序列)MSDU(MAC服务数据单元): 超帧说明GTS域 帧载荷由以上三部分组成的数据单元称为MPDU(MAC协议数据单元)物理层:帧头(PHR)帧尾(FHR)MPDU在物理层被称为PSDU(物理层服务数据单元)由以上三部分组成的数据单元称为PPDU(
2016-03-23 15:06:50 5298
原创 zigbee 获取自身的mac地址
协议栈版本: ZHA 1.2.1方法1:NLMEDE.h 中有相关的API可以获取到设备的MAC地址:/* * This function will return a pointer to the device's IEEE 64 bit address * * This function resides in nwk_util.c. */extern byte *
2015-12-27 19:11:25 2943
原创 zigbee 出现 Energy level Scan Failed解决方法
解决zigbee出现Energy level Scan Failed的问题
2015-01-29 15:36:49 4928
iot_master
2020-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人