自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (5)
  • 收藏
  • 关注

原创 超详细“华为IoT物联网(OceanConnect)平台环境搭建教程”

该文章详细的讲述了“华为IoT物联网平台环境的搭建”教程,适合新手阅读,让新手更快的上手华为物联网开发平台。

2019-12-29 12:44:02 20268 10

原创 C51单片机中reentrant关键字的使用,关于MULTIPLE CALL TO FUNCTION警告的问题

如果在使用该函数期间被中断打断,而中断也调用了该函数,那么该函数的局部变量会被覆盖。当中断结束返回,则此时的变量已经被中断修改了,此时的数据不对,会出现意想不到的结果。(51单片机资源有限,为了提高运行效率,C51采用静态分配局部变量的方式,所以不可递归。而标准C语言的堆栈是动态分配的。在一个项目中警告信息如下,提示该函数多次调用,因为该函数在串口中断和主循环中都有被调用。C51的变量是编译时预先分配好的,每个变量地址已经固定,不会变动。给需要重复调用的函数加上。关键字,使用方式如下图。

2023-12-12 10:38:37 1354

原创 Silicon Zigbee3.0 EmberZNet 低功耗模式--EFR32进入低功耗的设置

芯科(Silicon)的 Zigbee3.0 EmberZNet应用程序框架,其中包含对休眠终端设备的支持。休眠终端设备是Zigbee网络上的一种设备,可以看作它的大部分时间都是断电的,只有在处理器需要执行某些特定操作(如解释GPIO中断或轮询其父设备以查看网络上是否有任何消息等待它)时才通电。休眠终端设备不直接从网络上的其他设备接收数据。相反,他们必须轮询其父设备以获取数据,并从其父设备接收数据。父设备充当休眠终端设备的代理,在终端设备休眠时保持清醒并缓冲消息。

2022-03-06 16:28:42 1892

原创 Silicon Zigbee3.0 EmberZNet 使用Simplicity Commander软件烧录——JLink SWD模式烧录

前言EFR32 系列芯片烧录支持JLink SWD模式以及Silicon Labs官方提供的Simplicity Commander Mini接口烧录什么是Simplicity Commander?Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。自 2017年7月起,Simplicity Commander 可作为独立实用程序使用。安装

2021-11-30 12:13:21 4816

原创 Silicon Zigbee3.0 EmberZNet 串口篇——EFR32串口数据能发送出去但不能接收的问题

正在开发的产品需要跟其他设备进行通信,发现从EFR32串口发送出去的数据是正常的。但无法接收数据。PC上用串口助手能正常接收数据所以波特率应该是正确的。如下是自己创建的任务,专门用来处理串口接收。EmberZNet 使用串口,默认使用的是DMA模式,通信中会将接收和发送的数据暂时缓存,下面代码中如使用emberSerialReadAvailable函数将接收缓存里的数据长度作为返回值返回,但debug发现len值一直为0或1,说明缓存区并无数据,或者数据丢失了。//串口任务void UartMsgE

2021-11-19 00:07:43 5696

原创 Silicon Zigbee3.0 EmberZNet 报错篇——EFR芯片编译提示‘BSP_PTI_DFRAME_PIN‘ undeclared

Packet Trace Interface(数据包跟踪接口)也称为 PTI,是 Silicon Labs 设备组合专有的外设。该外设直接从定序器收集所有接收和传输的数据包和一些元数据,从而提供有价值的信息来帮助调试网状网络中的复杂问题。报错信息:'BSP_PTI_DFRAME_PIN' undeclared提示一些关于BSP_PTI_xxxx_xxxx的值未定义,如下图,问题出现在hal_config.c文件打开.hwconf文件,找到PTI,将其取消,或者配置对应的参数,试缺少的参数补齐(PT

2021-10-26 22:58:50 467

原创 Silicon Zigbee3.0 EmberZNet入门教程3——编译与烧录

1关于BootloaderBootloader程序通过读取存储在内部或外部内存中的更新映像(程序)重新烧录Flash实现固件的更新。更多关于Bootloader程序的内容可以自行百度。相关链接:“电子产品如何使用IAP方式升级程序”2017年3月,Silicon Labs推出了Gecko Bootloader,这是一个可通过Simplication Studio的IDE配置的代码库,用于生成可用于各种Silicon Labs协议栈的引导加载程序。Gecko引导加载程序用于所有EFR32xG设备。1

2021-08-19 14:12:41 1129

原创 Silicon Zigbee3.0 EmberZNet入门教程2——SSv5新建工程项目

1.如下图新建一个项目2.目标、SDK 和工具链的选择如果已连接或选择了一个目标,则会预先填充所有信息。否则,您可以在此处选择目标零件。单击下一步。3.选择示例左侧选择关键字,右侧选择一个示例,然后下一步4.配置项目命名项目名称,选择项目位置,链接项目文件,然后点击FINISH5.等待创建完成6.项目创建成功项目创建成功后的视图1 - 编辑区(取决于项目)。2 - 项目资源管理器视图:列出工作区中可用的项目。3 - 调试适配器视图:列出通过 USB连接到您的计算机或在本地

2021-08-19 12:41:06 688

原创 Simplicity Studio 编译出错,提示:No such file or directory 解决办法

背景使用一个zigbee 协议栈的示例程序,而且未做更改的情况下报错,查看报错信息为:No such file or directory 代表未找到对应的文件。问题原因双击进入对应报错位置发现该头文件包含的是路径形式,../代表的是上一层路径,找到该文件对应位置往上跳5个上层路径后到了C盘根目录,我软件装在了D盘,所以C盘根目录里没有SiliconLabs文件。所以会提示找不到原文件。如果是Linux系统则没有此问题,因为Linux只有一个根文件。解决办法1(推荐)关闭工程,将工程移植到Simp

2021-08-18 19:35:16 3159

原创 Silicon Zigbee3.0 EmberZNet入门教程1——安装EmberZNet SDK

EmberZNet 协议栈介绍[1] EmberZNet协议栈是Silicon Labs提供的基于Zigbee协议的Zigbee协议栈,支持最新的Zigbee 3.0规范;其以库的形式提供,封装在Zigbee SDK内。要使用EmberZNet PRO协议栈,用户需要至少购买Silicon Labs一套Zigbee相关的开发套件,获取对应的序列号(Register Kit)在Simplicity Studio上进行SDK下载。此教程使用EmberZNet协议栈笔者购买的套件是目前最新的,型号为:

2021-08-17 16:59:06 1530

原创 Silicon Zigbee3.0 EmberZNet入门教程0——安装SSv5(Simplicity Studio v5)IDE软件

安装步骤该文章安装步骤参考Silicon官方用户指南1. 从 Silicon Labs 网站下载 SSv5 安装包。官方安装包下载链接:https://cn.silabs.com/developers/simplicity-studioWindows 包是一个“.iso”磁盘映像。包下载完成后,双击它以将iso映像挂载为驱动器,然后双击驱动器内的setup.exe文件以启动安装程序。2. 当 SSv5 安装程序首次启动时,它会显示一个 Simplicity Studio 许可协议对话框。接受协议

2021-08-17 15:07:11 4241

原创 PIC12F508/509深入教程-示例程序

PIC12F508/509这款单片机比普通的51单片机还要简单,有51单片机基础的直接看数据手册就可直接深入。至于入门安装IDE软件的教程可以参考另一个博主的系列教程,我觉得不错:https://blog.youkuaiyun.com/JYUNefe/article/details/80642999其他教程:https://blog.youkuaiyun.com/qq_30209977/article/details/105775792这款单片机内部资源有限,要省着点用,全局变量和静态变量不能太多,SRAM也少,所以写这

2021-08-17 10:41:45 3327 3

原创 Docker容器安装Zigbee2mqtt镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/找到自己想要的镜像后可以如图直接复制命令进行镜像拉取,很方便。我们也可以使用 docker search 命令来搜索镜像。查找Zigbee2mqtt 我们可以输入docker search zigbee2mqtt命令搜索 zigbee2mqtt 来寻找适合我们的镜像。其中STARS数量多的代表热度比较高,并且AUTOMATED一栏的 [OK] 代表可以自动化安装。则我们现在拉

2021-08-04 09:48:45 4546 1

原创 CC2530如何使用IAR编译生成hex文件,使用Flash Programmer烧录提示:Could not open specified HEX file解决办法

CC2530如何使用 使用IAR编译生成hex文件如果碰到使用Flash Programmer烧录时提示:Could not open specified HEX file(无法打开指定的HEX文件),可以参考一下我这篇博客,之前也遇到这个问题,问题是工程配置问题,很简单的小问题,但可能因为是第一次使用IAR的原因,所以搞了好一段时间才解决,所以在此记录一下。1、首先在Project -> Options 打开选项(快捷键Alt + F7)2、如下图选择Linker -> Output

2021-05-24 13:51:54 5970

原创 工具推荐:ST-MCU-FINDER(ST意法半导体MCU选型,产品查找工具)

官网链接:https://www.st.com/zh/development-tools/st-mcu-finder-pc.html该工具可以根据产品的需求来选择ST的芯片,例如开发某个产品的基本要求是:要足够便宜,需要2个串口,IO口几个就够。那么就可以例如此软件填入异步串口需求2个,然后根据价格从低到高排序,就可以发现有STM32G030F6这个型号符合我们的要求。这样可以很快的对MCU选项。可以选择32位单片机,也可以选择8位的STM8软件首页整体截图:...

2021-02-20 14:49:55 1981

原创 容易造成单片机内存溢出的几个陷阱

关于程序变量和内存分配,都是需要我们时刻关注的问题。我相信有不少人在这块犯过很多的错误,也可能说明我们基础不够扎实,编写程序的习惯也不够好。 总结一下关于程序的变量和内存方面的概念,虽然是属于C语言方面非常基础的知识,但是工作中一不小心还是会发生一些内存泄漏、内存溢出之类的问题。所以自己对这块的理解也还远远不够。在这总结一下关于这方面的知识点,用来互相学习,更用来提醒自己,并作为自己的一个经验总结

2021-01-05 14:06:58 587

原创 NB-IoT使用CoAP协议接入华为IoT平台教程

原文地址:https://bbs.huaweicloud.com/forum/thread-24342-1-1.html上一次我们讲了“华为IoT平台环境搭建”,只用了虚拟设备进行演示,今天我们用真实的NB-IoT模块来进行通信。1、准备要完成这次实验需要以下几个东西。1.1、NB-IoT模组目前NB-IoT厂商与模组主要有以下几个公司模组名称使用芯片支持频段通讯协议...

2019-12-28 18:39:25 6751 15

原创 Arduino随动四轴机械臂,机械臂实现步骤记录、复现功能

制作这个机械臂是机器人课程老师留下的作业,任务要求是夹取印章,然后在指定的地方盖章。程序要求能记录步骤,并且复现出来。先大概看下丑陋的成品:说实话确实很丑,因为临近毕业了,事情又多,没时间搞那么好看了原材料:电位器 * 49g舵机 * 4轻触开关 * 1Arduin UNO * 1热熔胶杜邦线多根(建议用质量好的杜邦线)连接用的木棍(可以用其他代替)然后用热熔胶连接成下...

2019-12-27 01:43:56 7140 28

原创 宏定义展开下的#与##

宏定义展开下的#与###:定义为字符串##:连接符号宏定义中#与##符号相信大家见的并不多,主要是在内核代码里比较多见,可能大家用的也比较少,但这2种符号还是比较有用的,特别是##,详细的使用方法看下面的例程,相信大家一看就明白了#符号的例程:#define ABC(x) #xint main(){ printf( ABC(abc\n) );// ABC(abc\n)等价于:”ab...

2019-12-19 00:18:32 307

SimplicityCommander-Mac.zip

(Mac版本安装程序)Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。从官网下载的Simplicity Commander 安装程序。

2021-11-30

SimplicityCommander-Linux.zip

(Linux版本安装程序)Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。从官网下载的Simplicity Commander 安装程序。

2021-11-30

SimplicityCommander-Windows.zip

(Windows版本安装程序)Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。从官网下载的Simplicity Commander 安装程序。

2021-11-30

(安信可 TB 系列模块烧录工具 )TBXX_Flash_Tool.exe

安信可 TB 系列蓝牙模块采用的是 Telink 825X 系列芯片。该芯片内置 512K Flash,芯片硬件只支持官方专用烧录器烧录,不支持串口烧录。专用烧录器价格 昂贵,每个开发者购买一个烧录器显然是不现实的。 安信可作为物联网行业的推动者,在原来芯片的基础上开发了串口烧录的功 能,可以极大地降低用户的开发成本,加速蓝牙技术的普及。串口烧录工具采用 Python 语言编写,分为图形界面和命令行脚本两个版本,开发者可以非常方便地 将自己编译的程序烧录到芯片中进行调试。 其原理是我们编写了一个 bootloader,将其烧录到芯片 Flash 的前 16KBytes。 芯片上电后,CPU 自动将 Flash 的前 16K 数据(即 BootLoader)复制到内存中运行, BootLoader 根据 SWS 引脚电平的高低判断该进入那种模式。 如果 SWS 为低电平,将进入烧录模式,等待用户烧录固件。 如果 SWS 为高电平,进入运行模式,将会把应用层代码的 Ram code 从 Flash 的 0x2C000 地址复制到内存 0x0 中,然后从内存 0x0 地址启动应用层代码。 备注: BootLoader 中对 SWS 设置了软件上拉,所以 SWS 引脚默认为高电 平

2020-03-30

安信可蓝牙5.0Mesh组网模块(TB-02).rar

含安信可TB-02模块的:AT固件、AT指令集、TB01与02系列模组用户手册、TB模组固件烧录教程、规格书

2020-03-26

空空如也

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

TA关注的人

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