5 sunny.Bit

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 9w+

设计难题|设计难题《一》单火取电开关---“鬼火”

一、前言文章原理来源于网络。单火线取电开关至今无法攻克的难题,即电子开关在关闭后节能灯或LED灯还会闪烁,出现“关不死”的现象(俗称“鬼火”)。单线电子开关的研究和推广好像到了“山重水复疑无路”的境地,有不少电子技术人员陷入了迷茫。目前在做BLE MESH版本的单火线取电开关也遇到了这个问题,现在来分析下灯闪出现的原因。二、灯闪原因分析灯闪烁基本出现在LED灯和节能灯上,这与节能灯或LED灯以及电子开关的自身构造都有关系:一方面是单线电子开关在关闭时自身电路仍需要一定的维持电流,另一方面

2020-09-03 16:31:30

C语言开发常见错误|C语言开发常见错误《一》a-b>0还是a-b<0

一、前言 在程序编写的时候我们经常遇到类似语句 if((a-b) > 0) { ......... } else { ......... }但是a-b一定就是我们的预期值吗,当定义uint8_t a = 876;uint8_t b = 879;两个无符号的整数相减,结果是正数还是负数,今天我们测试一下二、测试测试MCU,32位MCU,其他的8位或者16位未测试(1)定义uin8_tin...

2020-08-24 15:37:23

加密解密算法|使用C语言实现加密解密算法XTEA

一、前言 数据通信时我们经常用到加密,尤其在单片机开发中计算能力有限,因此找到一个适合单片机加密的方式格外的重要,今天介绍一下XTEA加密算法。 在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领域是不尽相同的。对称密钥加密算法由于其速度快,一般用于整体数据的加密,而非对称密钥加密算法的安全性能佳,在数字签名领域得到广泛的应用。 TEA算法是由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994...

2020-08-10 15:07:40

Telink BLE MESH开发|ble mesh开发教程《四》telink_sig_mesh休眠与唤醒

一、前言 单火线对接天猫精灵中的BLE需要用到休眠,因为单火线为低功耗设备不能一直运行,天猫对单火线有了定义:精灵低功耗(GLP)如果模组要应用于下行数据接收的低延时低功耗设备(例如单火开关,电池供电的窗帘电机)时,可以采用精灵低功耗(Genie Low Power)方案,在开放平台上创建产品时在属性里选择精灵低功耗,这样精灵在给这个设备发送数据的时候,会在1.2s的时间内持续不断地发送数据。所以设备只需要每1.2s醒来60ms,可以在低功耗的情况下能及时接收到精灵下发的数据。设备需要..

2020-07-31 10:42:15

Telink BLE MESH开发|ble mesh开发教程《三》telink_sig_mesh串口收发数据

一、前言 官网资料介绍建议采用DMA传输,串口数据的接收是放到了fifo中,但是串口发送也是采用的DMA,问题在于串口发送并没有建立缓冲器,而是判断当前DMA是否忙,如果忙数据直接丢弃,这样做显然不合理。如果发送时DMA忙应该将数据放到缓冲器中,等DMA不忙时再进行发送。 二、代码修改(1)启用串口 app_config_8258.h中 (app_config_8258.h一定要对应相应的工程不要调试mesh的工程而修改了spirit lpn的工程中的app...

2020-06-24 09:08:42

Telink BLE MESH开发|ble mesh开发教程《二》telink_sig_mesh增加调试信息打印

一、前言 首先吐槽下泰凌的SDK吧,写的很乱呀,一堆的宏定义,关键是文档资料和代码注释少的可怜,没有原厂支持确实很难读懂。第三方支持是有条件的,但是公司并不打算进行商务谈判,因此只能自己啃了。我觉得这也是国产芯片为什么大家不愿意用的一个原因吧。二、增加log打印在工程目录 ```app/app_config_8258.h```文件中,有如下与日志打印相关的宏定义:#define HCI_LOG_FW_EN 1#if HCI_LOG_FW_EN#define ...

2020-06-15 13:43:47

Telink BLE MESH开发|ble mesh开发教程《一》ble mesh基础知识

一、Mesh组成 蓝牙Mesh,我们能够创建大型网络并支持成千上万的设备之间进行安全、可靠的通信。蓝牙Mesh网络包括节点(Node)、元素(Element)、模型(Model)和状态(State),本篇SKYLAB君将为大家详细介绍蓝牙Mesh的节点,节点(Node)是已经启动配置(Provision)并成为Mesh网络中一员的设备。 蓝牙Mesh规范详细描述了四种“节点”,...

2020-05-26 15:56:02

NB-IOT开发|nbiot开发教程《五》nbiot(移远BC26)电信物联网平台实现MCU固件在线升级(STM32L051+BC26)

嵌入式开发中我们要时刻保持代码的高效与整洁 看之前,先点赞好习惯,要养成一、前言 嵌入式开发中我们要时刻保持代码的高效与整洁。为什么要有在线升级和为什么要进行在线升级,在这不多说,产品的开发中,在线升级时非常重要的。我们先看下实际效果。...

2020-04-21 07:58:11

NB-IOT开发|nbiot开发教程《四》移远BC26低功耗调试PSM功耗3.6uA

PWRKEY一直被拉低也不能进入Idle.AT+QNBIOTEVENT=1,1 设置进入PSM消息提示。+QNBIOTEVENT: "ENTER PSM"+QNBIOTEVENT: "EXIT PSM"

2020-03-31 09:33:11

NB-IOT开发|nbiot开发教程《三》AT指令类模组驱动-STM32实现AT指令状态机

嵌入式开发中我们要时刻保持代码的高效与整洁看之前,先点赞好习惯,要养成一、前言嵌入式开发中我们要时刻保持代码的高效与整洁。在第一节中“NB-IOT开发|nbiot开发教程《一》AT指令类模组驱动解析”我们说到AT指令模组最好的驱动-状态机。本节我们就开始编写状态机。 ...

2020-02-08 12:08:42

NB-IOT开发|nbiot开发教程《二》AT指令类模组驱动-STM32串口实现接收不定长度数据

嵌入式开发中我们要时刻保持代码的高效与整洁一、前言 嵌入式开发中我们要时刻保持代码的高效与整洁。上一节中AT指令模组状态机的实现需要串口实现接收不定长度数据,本文就是说明具体实现方式。二、原理 串口实现接收不定长度数据原理:串口接收中断接收数据,每次中断时启动数据超时定时器(软件定时器),每次接收到数据更新定时器时间并将数据压到环形缓冲区中,时间可以为...

2020-02-06 19:51:17

NB-IOT开发|nbiot开发教程《一》AT指令类模组驱动解析

嵌入式开发中我们要时刻保持代码的高效与整洁看之前,先点赞好习惯,要养成一、前言嵌入式开发中我们要时刻保持代码的高效与整洁。NBIOT的出现带动了物联网行业的火爆,物联网行业似乎总是离不开NBIOT。但是,我将NBIOT归为AT指令模组一类,这一类模组没有什么高深之处,也没有深度可言。但是想要很好的使用AT指令模组却是一件不简单的事情。想要很灵活的使用AT指令的模组需...

2020-02-06 13:34:41

LoRa开发|LoRaWAN节点(node)代码解析(STM32L051+SX1276/8)安信可RHF76-052

一、前言嵌入式开发中我们要时刻保持代码的高效与整洁。目前LoRaWAN规范有两个版本V1.0.2和V1.0.3,相应的SDK也有两个:LoRaMac-node v4.0.0和LoRaMac-node v4.4.2。LoRaMac-node v4.4.2增加了classB的通信方式,但是LoRaMac-node v4.4.2的内存占用要比v4.0.0大一些,不过目前市面上买的Lo...

2020-02-04 23:13:59

LoRa开发|LoRa(SX1276/8)串口透传代码-将LoRa封装成单独的驱动(STM32)

一、前言嵌入式开发中我们要时刻保持代码的高效与整洁。2020年,开年注定不平凡,新型冠状肺炎的出现哪里也去不了,在家无聊写点东西吧。最近和一友人聊天,友人一直在抱怨学习lora没有前途,一直在纠结要不要学习,我只是默默的听着,然后笑一下当做什么都没听见。LoRa是一种通信技术不是一种职业,学不学他都在那里,而且LoRa本身也不难,spi接口,手册还是中文的。目前国内无线通信产品...

2020-01-31 13:54:14

嵌入式开发|高效缓冲器设计(C语言)

一、前言 嵌入式开发中我们要时刻保持代码的高效与整洁。在嵌入式的开发中缓冲器是非常常用的,比如串口的数据,MCU处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释放掉,再处理下一个。已经处理的数据的内存就会被浪费掉。因为后来的数据只能往后排队,如果要将剩余的数据都往前移动一次,那么效率就会低下了,肯定不现实,所以,环形队列就出现了。 ...

2020-01-17 09:48:10

nRF52805-低价格的蓝牙BLE5.0

一、前言 近期在开发BLE的时候拿到了一款nordic的BLE:nRF52805,通过官网几乎找不到任何资料,因为这个款蓝牙芯片是特供的,但是通过SoftDevice确实能发现一下nRF52805的蛛丝马迹,说明确实有nRF52805的存在,nRF52805其实是nRF52810的阉割版,不过通过手册看只是IO口稍微少一些,nRF52805和nRF52810一样都支持BLE5.0...

2019-12-16 13:26:45

LoRa开发--lora cad模式下待机功耗计算

一、CAD功耗计算计算只是LoRa设备不包括MCU的功耗500ms间隔CAD待机功耗   电流/mA 时间/mS 小时换算为mS 消耗能量/mAh CAD 10 10 3600000 2.77778E-05 休眠 0.001 500 3600000 1.38889E-07       ...

2019-10-16 15:21:48

STM32L例程03--串口输出usart及其printf重定向(基于cola_os)

一、实验目的1.实现串口信息打印。2.每1s钟打印一次信息。3.串口接收到数据,然后打印出来一、实验步骤1.CubeMax配置配置PA9,PA10为串口输出,导出工程。2.usart驱动创建串口驱动实现原理:中断接收到数据后通过事件通知应用层。stm32_usart.c#include "config.h"#include "stm32l0xx_...

2019-10-16 11:01:53

STM32L例程02--GPIO输出控制LED状态切换(基于cola_os)

一、实验目的1.实现GPIO口的输出。2.控制LED状态切换,500ms闪烁一次。一、实验步骤1.CubeMax配置配置PB1为输出,修改Lable为LED,导出工程。2.LED驱动创建stm32_led.c#include "config.h"#include "stm32l0xx_hal.h"#include "stm32_led.h"#includ...

2019-10-15 14:36:35

STM32L例程01--环境搭建Keil安装及CubeMax安装

一、工具下载百度云盘链接:链接:https://pan.baidu.com/s/1LALaBdwyq6MHxNbjJdp0uA提取码:ctzsCubeMax官网下载链接https://www.st.com/stm32cubemxSTM32L0没有标准库,只有HAL库,使用HAL库简单的方式是使用CubeMax进行开发。Keil官网下载链接http://www.ke...

2019-10-15 13:58:51

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。