51CTO博客开发
介绍了Zigbee和Z-Stack的关系,Z-Stack使用过程中的IAR知识,以及Zigbee简单通讯实验。
Zigbee是一种无线通讯技术。无线,顾名思义,就是通过无线电波(像WIFI,手机)作为信息载体的一种通讯方式。通讯,也就是指一个设备和另一个设备之间需要沟通、交流。人和人之间需要沟通,沟通就需要使用语言,那这个语言可能存在语法,说白了就是双方都要理解对方说的是啥,要是一个只懂中文,另一个只懂英文,那他两个沟通就可能需要一个翻译。设备之间也一样,它们之间需要遵循一定的规定。两个设备都要按照这个规定进行收发信息,那这个规定就是协议。对于Zigbee通讯技术来说就是Zigbee协议。其实啊,计算机的技术有两个大的方面,一个是计算机本身(硬件技术上的进步),一个是不同设备之间的沟通。类比我们人类来说,一个是 人 本身的问题,一个是社会问题。说了这么多废话,下面总结一下:Zigbee通讯就是设备和设备之间进行沟通的一种方式,这种方式规定了传输信息需要什么物理介质,传输的信息格式是什么样子的,谁先发送信息,信息传输过程中被干扰了怎么办,对方要是没收到怎么办等等一系列问题。
1.缘起 接触C语言有三四年时间了,工作中也一直使用C语言。但对于一些C语言的特性和定义还存在一些疑问,这里总结一下,作为以后参考。 2.C语言的链接属性 工作中无意发现了C语言一个有趣的问题,在两个源文件中定义了同一个未初始化的变量,编译器竟然不报错,但是如果在其中一个文件中定义并初始化,那就会报错。我测试使用的代码如下(测试环境wi
讨论C语言关于全局变量,链接属性,构体里的成员数组和指针,变长数组等问题。
以后的博文会在51CTO发表。 版权声明:本文为博主原创文章,未经博主允许不得转载。
0规范制定说明 0.1箴言 技术人员设计程序的首要目的是用于技术人员沟通和交流,其次才是用于机器执行。程序的生命力在于用户使用,程序的成长在于后期的维护及根据用户需求更新和升级功能。如果你的程序只能由你来维护,当你离开这个程序时,你的程序也和你一起离开了,这将给公司和后来接手的技术人员带来巨大的痛苦和损失。因此,为了程序可读、易理解、好维护,你的程序需要遵守一定的规范,你的程序需要
目录 1硬件平台 1 1.1硬件平台简介 1 1.2 硬件设计及电路原理图 2 2. Keil 开发工具及Keil工程简介 6 2.1 Keil开发工具 6 2.2 Keil工程简介 6 2.3 链接文件、启动文件分析 6 3. UCOS移植 11 3.1 ucos简介 11 3.2 ucos移植总述 11 3.3 和移植UCOS有关的ARM芯片知识 11 3.4 系统堆栈
一:起因 在有些嵌入式项目中,我们需要保存一些浮点数的系数,针对这些系数的处理,我们就要用到C语言中浮点数相关的知识,自己对这方面也是知其然不知所以然,借此机会总结记录一下。 二:疑问 1,浮点数在计算机中是如何保存的? 2,这些数据精确度到底都是多少? 3,浮点数中的无穷大、
在Keil C51 中使用printf ,首先需要重新实现 putchar(char c)函数。此函数在 char putchar (char c) { ES=0; SBUF = c; while(TI==0); TI=0; ES=1; retur
产品中经常使用开关量输出,一般分为PNP 和NPN 方式。我们要根据项目需要选型。这两种形式的主要区别是PNP电流是向外流,NPN电流是向里流,就是这样的区别而已.原理图: 另外,使用时还需要注意其电压和电流属性。
去掉word2007文字当中的白色背景 页面布局-->页面背景-->页面边框-->底纹 将填充设为无颜色填充,应用于文字,有时可能需要应用于段落。 图一 图二
PCB层的定义: 阻焊层:solder mask,是指板子上要上绿油的部分;因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色! 助焊层:paste mask,是机器贴片时要用的,是对应所有贴片元件的焊盘的,大小与toplayer/bottomlayer层一样,是用来开钢网漏锡用的。 要点:两个层都是上锡焊接用的,并不是指一个上锡,一个上绿油
1:Modbus协议简介 Modbus协议主要描述的是应用层的信息封装格式,处于OSI模式的第七层(应用层)。Modbus的物理层可以是RS-485、Ethernet II /802.3。Modbus协议栈的层次图: &
一直在思考,学习本身是一件很有乐趣的事情,到底是什么让学习失去了乐趣。我们很小的时候学习走路,我们摔倒了很多次,但我们依然很开心地去学习大人们走路,摔倒了,我们站起来,接着学。也许是因为我们那时候对整个世界都充满好奇。 我将学习分为以下部分: 疑 思 学 省
拉电流与灌电流 1、概念 拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数,这种说法一般用在数字电路中。 这里首先要说明,芯片手册中的拉、灌电流是一个参数值,是芯片在实际电路中允许输出端拉、灌电流的上限值(允许最大值)。而下面要讲的这个概念是电路中的实际值。 由于
Technorati 标签: C,标识符,作用域,命名空间,链接属性,生命周期,存储类型,scope,name space,linkage,storage durations,lifetime 无论学习哪一种语言,都免不了要讨论这些问题。而且这些问题,深究起来有时也让我们很迷惑。
转自:http://blog.csdn.net/keyeagle/article/details/6708077 看到这篇文章针对C语言的static关键字解释的比较好,这里转载过来。谢谢原作者分享。 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不
1.前言 一直以来对C语言的类型转换规则不理解,也没有找到相关的资料。偶然的机会查到关于安全编程的相关文献-----MISRA。里面对相关内容作了详细的介绍。我这里根据其内容整理了一下,以备查阅。 2.显式和隐式数据转换 C 语言给程序员提供了相当大的自由度并允许不同数值类型可以自动转换。由于某些功能
注:前段时间Myan在CSDN上贴了一个对各大语言,以及OO和模块化的评价的文章。下面这篇对C++之父的采访中,Bjarne Stroustrup谈到了自己的看法。通过大师们思维的碰撞,我们能从中学到什么呢? Slashdot对Bjarne Stroustrup的采访 荣耀 马皓明 译 1.OO的发展已呈颓势了吗?(由Rambone提问) 2
1:源头 我们学习arm嵌入式开发,一般接触到的是ADS1.2、kei的工程模板,这些模板对初学者入门来说是一种福音,但是想深入了解一下芯片启动过程、 编译和链接、映像文件结构、如何初始化、移植标准库等这些内容的话,这些商业IDE就显得隐藏了很多细节,不利于进一步学习。基于上述缘由, 我写了一个基于gnu arm-linux开发环境的LPC2220的简单工程,此工程实现了芯片开机初始化、加载
1:主要内容 在嵌入式开发中,一般使用汇编语言做一些芯片初始化工作,当对程序效率要求很高时,也有时会使用汇编语言,但汇编语言相对较难阅读和理解。因此,我们希望我们以后的实验在初始化完芯片相关功能后使用C语言进行编程,方便大家阅读及理解。这一篇的内容主要是讲解使用C语言来控制LED灯闪烁。 2:相关要点 1,在通用PC机上写程序都有一个叫做main的函数,是程序的总入
1:主要内容 本文主要介绍了VMA、LMA的相关概念,gnu link script的作用和使用方法。 2:引言 我们程序员刚开始学习编写程序时,都会接触到一个 " *.C " 文件要经过编译、链接等过程才能变成可以执行的程序。至于这里的链接到底怎么回事,我们今天就来谈谈这方面的内容。现在
一、很多初学者都会认为三极管是两个 PN 结的简单凑合(如图1)。这种想法是错误的,两个二极管的组合不能形成一个三极管。我们以 NPN 型三极管为例(见图 2 ),两个 PN 结共用了一个 P 区 —— 基区,基区做得极薄,只有几微米到几十微米,正是靠着它把两个 PN 结有机地结合成一个不可分割的整体,它们之间存在着相互联系和相互影响,使三极管完全不同于两个单独的 PN 结的特性。三极管在外加
现在我们用的高级语言有很多,c语言c++等。关于计算机语言的简单编译原理,以及高级语言的移植性的通俗点的说明网上很少。因此,有很多同学有时候很迷惑,到底我们用高级语言写的程序最后怎么在机器上运行的,还有在windows下编译的高级语言写程序能在linux下运行吗? 带着这些疑问,我们开始我们的探索路程吧。 我们先简单的说明一下编译过程: 我们都知道,高级语言的
hex,bin,axf,elf的区别 一、HEX 和BIN Hex文件,这里指的是Intel标准的十六进制文件,也就是机器代码的十六进制形式,并且是用一定文件格式的ASCII码来表示.具体格式介绍如下: Intel hex 文件格式 Intel he
C语言中return与_exit的区别 C语言中return与exit的区别 C语言中的return, exit, break, continue。前两个函数使用的同时通常都会带上程序退出时的状态码,标准C中有EXIT_SUCCESS和EXIT_FAILURE两个宏,位于/usr/include/stdlib.h中。 是这样定义的的:
在宏定义里面经常看到do{...}while(0)这样的语句。 确实很让人疑惑,do while(0)就是让代码只执行一次,何必这样呢,为什么需要用do while呢。 其实,宏定义就是一个代码替换的过程。 #define CODE_SEG(a) printf("sample macro:%s\n",a)&
本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消息的一些知识; 声明:
主要工作: 1:系统控制模块 (Crystal oscillator 、PLL、Reset and wake-up timer) 2:arm芯片工作模式(PROGRAMMER'S MODEL) 3:通用IO操作 4:UART、i2c、spi 5:定时器、看门狗、实时时钟 6:PWM 、AD、DA 7:外部存储控制器 8:中断系统 9:Ubo
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号