- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 【Zigbee】任务初始化函数(部分)和系统开始函数(部分)
/* 任务事件处理函数数组 */const pTaskEventHandlerFn tasksArr[] = { macEventLoop, nwk_event_loop, Hal_ProcessEvent,#if defined( MT_TASK ) MT_ProcessEvent,#endif APS_event_loop,#if defined ( ZIGBEE_FRAGMENTATION ) APSF_ProcessEvent,#endif ZDApp_even
2020-12-29 23:14:12
759
1
原创 Zigbee五种通信方式
Zigbee共有五种通信方式,包括单播、广播、组播,根据MAC地址通信、绑定。相关术语Zigbee术语一个设备有多个端点,一个端点对应一个应用,一个应用有多个属性和命令,相关的属性和命令归到一起形成簇,一个设备的这些应用一般属于同一类应用子集规范。相关代码分析xxApp.h文件中相关宏定义#define TestApp_ENDPOINT 10 //端点号为10#define TestApp_PROFID 0x0F04 //应用规范为0x0F04
2020-12-15 23:36:26
6964
转载 Zigbee术语
彻底明白Zigbee术语——群集(Cluster)、端点(EndPoint)等关于zigbee中的端点与簇ZigBee协议中的规范(Profile)和簇(Cluester)的概念
2020-11-28 01:01:49
370
原创 Zigbee读取DHT11传感器的温湿度,并通过串口发送给上位机
下面的代码以详细注释DHT11的通信过程,想了解更多可看其数据手册#include <iocc2530.h>#include <stdio.h>#include <string.h>#define DATA_PIN P0_0 // DHT11 的数据引脚typedef unsigned char uchar;/* 定义一个结构体,用来存储DHT11传出来的40位数据 */typedef struct{ uchar temp_H; ucha
2020-10-21 22:31:24
4849
8
原创 【STM32学习笔记】I2C 读写 EEPROM 实验
【STM32学习笔记】目录I2C 初始化结构体详解 /* I2C 初始化结构体 */ typedef struct { uint32_t I2C_ClockSpeed; // 设置SCL 时钟频率,此值要低于400000 uint16_t I2C_Mode; // 指定工作模式,可选 I2C 模式及 SMBUS 模式 uint16_t I2C_DutyCycle; // 指定时钟占空比,可选 low/high = 2
2020-08-27 09:06:17
2393
2
原创 【STM32学习笔记】目录
本专栏参考资料:《零死角玩转STM32》 — 基于野火F103[霸道_V2]开发板哔哩哔哩 “野火” 教学视频《STM32F10xxx参考手册》《STM32F103xC 、STM32F103xD 、STM32F103xE 数据手册》《野火_F103霸道_原理图_V2.0》《STM32F10xxx Cortex-M3编程手册》目录1、固件库的学习及使用固件库编写工程模板2、时钟的配置3、外部中断 / 事件4、GPIO外部中断代码 - 编写步骤5、SysTick-系统定时器的学习及延
2020-08-26 10:25:28
557
原创 【STM32学习笔记】I2C 简介及其架构
I2C协议简介协议 (计算机学科概念)对于通讯协议,我们以分层的方式来理解,分为物理层和协议层。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。(硬件)I2C 通讯设备之间的常用连接方式物理层特点:I2C的物理层就是一个总线,多个设备共用的数据线和时钟线。在一个I2C 通讯总线中,可连接多个I2C 通讯设备,支持多个通讯主机及多个通讯从机。其中的数据线(SCL)是一个双向
2020-08-26 10:14:01
1570
1
原创 【STM32学习笔记】DMA学习及其编程实验
DMA 简介DMA(Direct Memory Access) —— 直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用CPU,即在传输数据的时候,CPU 可以干其他的事情。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是SRAM 或者是FLASH。DMA 控制器包含了DMA1 和DMA2,其中DMA1 有7 个通道,DMA2 有5 个通道,这里的通道可以理解为传输数据的一种管道。注意:DMA2 只存在于大容量的单片机中。功能描述DMA控制器和Cort
2020-08-24 10:52:38
1340
原创 【STM32学习笔记】串口通讯 — USART / UART
文章目录通讯的基本概念串口通讯协议简介物理层RS-232标准USB转串口原生的串口到串口TTL和232的区别协议层STM32—USART / UART简介USART 功能框图功能引脚数据寄存器控制寄存器发送通讯的基本概念- 串行通讯和并行通讯特性串行通讯并行通讯通讯距离较远较近抗干扰能力较强较弱传输速率较慢较高成本较低较高- 全双工、半双工及单工通讯通讯方式说明全双工在同一时刻,两个设备之间可以同时收发数据半双
2020-08-23 00:15:00
1846
原创 【STM32学习笔记】SysTick-系统定时器的学习及延时函数的编写
SysTick 简介SysTick—系统定时器是属于CM3 内核中的一个外设,内嵌在NVIC 中。系统定时器是一个24bit 的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK 等于72M。当重装载数值寄存器的值递减到0 的时候,系统定时器就产生一次中断,以此循环往复。SysTick 寄存器介绍SysTick—系统定时器有4 个寄存器。1、CTRL SysTick 控制及状态寄存器该寄存器中有四个位有效,分别是:第16位: COUNTFLAG,Syst
2020-08-16 11:16:59
1057
原创 【STM32学习笔记】GPIO外部中断代码 - 编写步骤
一、初始化要连接到EXTI的GPIO1、建立一个GPIO结构体变量2、打开相关GPIO口的时钟3、配置GPIO结构体中的成员变量4、初始化结构体#define KEY1_INT_GPIO_PIN GPIO_Pin_0#define KEY1_INT_GPIO_PORT GPIOA#define KEY1_INT_GPIO_CLK RCC_APB2Periph_GPIOAGPIO_InitTypeDef GPIO_InitStruct;/* 初
2020-08-14 16:36:03
1882
原创 【STM32学习笔记】外部中断/事件
中断基础知识异常就是中断,中断就是异常。但是习惯上称系统产生的为异常,外部产生的为中断,即系统异常和外部中断。谈到中断,必须知道NVIC。NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设NVIC 结构体定义 typedef struct { __IO uint32_t ISER[8]; // 中断使能寄存器 uint32_t RESERVED0[24]; __IO uint32_t ICER[8]; // 中断清除寄存器 uint32_
2020-08-12 11:42:13
2091
1
原创 【STM32学习笔记】时钟的配置
时钟树简单总结一下: PLLCLK的来源有三个,HSE、HSE/2、HSI/2,一般选 HSE = 8M SYSCLK(系统时钟)的来源有三个,PLLCLK(锁相环)、HSE、HEI,一般选 PLLCLK * 9 = 72M AHB总线上的时钟 HCLK = SYSCLK = 72M APB1总线上的时钟 PCLK1 = HCLK/2 = 36M APB2总线上的时钟 PCLK2 = HCLK = 72M官方固件库的时钟配置(通过寄存器)static void SetS
2020-08-10 20:08:01
554
原创 【无BUG解决】Windows 10 家庭版 修改C盘Users下的中文用户名
我们在用到一些软件,或学习某些东西的时候,经常会被提示一些不知名的错误,很多错误都是由C盘Users下的中文用户名导致的。网上有很多如何改用户名的文章,但是大部分都是只给出了完整步骤中的一部分,导致更改后出现各种问题,如:找不到资料、黑屏、以前安装的软件由于路径错误无法打开等。本人也深受其害,在研究多个文章后,总结出较完整的步骤,在这里分享给大家。一、启用Administrator账户Win+X组合键,选择以管理员模式启动命令提示符输入 net user administrator /activ
2020-07-26 09:07:34
10781
24
原创 为什么用二进制补码所能表示的数据范围比原码多一个数据单位(为什么8位二进制的补码取值范围是-128~127)
问题:用8位二进制表示机器数[一个符号位]原码表示的范围-127~+127而用其补码表示则是-128 ~ +127 ----> 10000000~01111111,为什么10000000就是表示-128,回答:因为有一位是符号位,所以后7位是数值位。2^7=128,所以正数和负数各有127个(正数0 000 0000 ~ 0 111 1111、负数 1 000 0000),但是机器中是有0的,而且“0”有“+0”和“-0”之分。所以:正数是从 +0 ~ +127,刚好128个数字
2020-06-03 00:23:54
10937
10
原创 【数据结构-C语言】内部排序算法
这是一些大佬整理的:C语言八大排序算法,一文带你弄清所有判断各种排序算法的稳定性常用(内部)排序算法八大排序算法因为我对选择排序的不稳定性有点不理解,所以我找了一篇相关的博客,希望能帮助到有相同困惑的朋友理解选择排序的不稳定性下面是我自己整理的:(如有错误请指正,谢谢)数据类型#define MAXSIZE 100 /*参加排序元素的最大个数*/typedef int KeyType;typedef struct{ KeyType key; //按关键字排序 int
2020-05-31 22:55:12
645
原创 C51单片机实验-交通灯控制
实验目的:学习模拟交通灯控制的实现方法;掌握Proteus硬件仿真与调试。任务:根据要求编写程序,并写出原理性注释;将检查程序运行的结果,分析一下是否正确;完成所建工程的仿真及调试。实验内容按照电路要求在Protues中设计电路图。编程实现如下功能:用单片机端口作输出口,控制四个方向共12个发光二极管亮灭,模拟交通灯管理。功能描述如下:初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,
2020-05-24 23:29:03
10657
8
原创 C51单片机实验-LCD1602显示实验
实验目的:掌握LCD1602显示控制方法;掌握利用Proteus进行单片机控制系统的仿真及调试方法。任务:根据要求编写程序,并写出原理性注释;将检查程序运行的结果,分析一下是否正确;完成所建工程的仿真及调试。实验内容设计51单片并行口实现LCD1602的显示控制,要求在Protues中设计接口电路图,并编程实现在LCD1602上显示出双行字符(显示具体内容自定)。Proteus 原理图及运行仿真结果代码#include <reg51.h>typedef unsi
2020-05-24 00:54:39
7788
2
原创 【数据结构-C语言】一元多项式计算器
#include <stdio.h>#include <stdlib.h>typedef struct PolyNode *Polynomial;//存储结构为:带头节点的单链表struct PolyNode { int coef;//多项式系数 int expon;//多项式指数 Polynomial next;//指向下一个节点};t...
2020-04-29 00:06:34
4504
1
Traffic_light.pdsprj
2020-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人