![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zigbee学习之路
poulwalker
这个作者很懒,什么都没留下…
展开
-
通用IO(一)
前言学习zigbee,就从最简单的开始。我是从cc2530这块单片机学起的。 废话不多说,我从最简单的io说起。这块单片机的IO分为通用IO和外设IO。什么是通用I/O呢? 我简单的理解为通用I/O是只有输入输出0和1之分的一种IO模式。而外设IO指能实现多,复杂的功能叫做外设IO。当然这种说法肯定是不标准的,具体的说法还请大家查相关手册。我博客只教大家怎么用!通用I/O的使用I/O原创 2016-12-22 13:42:32 · 5960 阅读 · 0 评论 -
无线射频(一)
前言cc2530的外设和通用IO已经讲完了,今天我们开始讲CC2530的无线射频。RF内核RF内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。RF内核包括:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹配、频率合成器(FS)、命令选通处理器,定时器2(MAC定时器)。FSM模块FSM模块的主要功能包括控制RF收发器的状态、发送和接原创 2016-12-24 09:46:07 · 2051 阅读 · 0 评论 -
ADC信息采集
前言前面介绍了ADC,今天通过实例来讲解ADC的使用ADC的初始化通过代码讲解void ADCinit(){/*清除ADC数据寄存器*/ ADCH&=0x00; ADCL&=0x00;/*P0_7端口模拟 IO使能*/ APCCFG|=0x80;/*单次转换,参考电压为电源电压,对P0_7进行采样 抽取率为512*/ ADCCON3=0xb7;/*停止AD*原创 2016-12-23 20:45:07 · 13950 阅读 · 0 评论 -
ADC的介绍
前言ADC是我要讲的最后一个外设IO了,因此我尽可能的详细。所以今天主要是介绍ADC。下次博客才讲ADC的实例ADC的简介ADC支持14位模数转换,包含一个多路转换器,8个可独立配置的通道、一个参考电压发生器。特点1、可选的抽取率(采样频率);2、8个独立输入通道,可接受单端或差分信号;3、参考电压可选内部单端、外部单端、外部差分或AVDD5;4、转换结束可触发中断;5、转换结束可触发DMA原创 2016-12-23 20:44:28 · 7917 阅读 · 0 评论 -
DMA的使用实例
前言前面介绍了DMA的安装和初始化。今天我们通过实例来讲解DMA的使用。今天的内容是通过串口触发DMA传输实例,因此需要做以下工作DMA的初始化、串口初始化、串口传输、DMA触发传输。DMA初始化函数void DMAtext(),void DMAinit()串口初始化函数void UARTinit()串口传输函数void UartTX_Send_String(char *Data)以上的函数的课已原创 2016-12-23 19:35:15 · 1488 阅读 · 0 评论 -
DMA的初始化
前言前面讲解了DMA的配置,我们怎么使用它,因此今天,我们讲讲怎么初始化DMA配置已经配置好了,是不是应该启用我们的配置啊。DMA通道工作状态寄存器DMAARM故名思意,该寄存器是来控制DMA要怎么运作的。 //启用配置 DMAARM = 0x01;在启用DMA之前,我们要像其他有中断的寄存器一样需要清除标志位,DMA也不例外DMA中断标志寄存器DMAIRQ//清中断标志 DM原创 2016-12-23 19:33:44 · 2167 阅读 · 0 评论 -
DMA的配置与安装
前言前面提到,要想使用DMA首先要配置DMA废话不多说,直接上代码吧typedef struct { //源地址高8位 unsigned char SRCADDRH; //源地址低8位 unsigned char SRCADDRL; //目的地址高8位 unsigned char DESTADDRH; //目的地址低8位 unsigned char DEST原创 2016-12-23 17:27:39 · 1359 阅读 · 0 评论 -
DMA的介绍
前言什么是DMA,DMA有什么用?相信很多人都会这么问,秉着实用主义的原则,我也直接开讲了。DMA的介绍DMA控制器含有若干个可编程的DMA通道,用来实现存储器与存储器之间的数据传送,即DMA控制器通过访问整个XDATA存储空间来进行存储器与外设之间的数据传输。无需cpu的参与,DMA的操作能够减轻CPU的负担DMA的特点1、DMA具有以下特点:2、具有5个独立的DMA通道。3、具有3个可以配原创 2016-12-23 17:26:41 · 870 阅读 · 0 评论 -
定时器(三)
前言前面讲了利用定时器3的查询方式来实现LED1的闪烁,那么我们怎么用中断方式控制呢?今天,我们主要来讨论这个话题。那么我们想想,应该怎么让定时器3产生中断呢? 无非也就这几步骤:分频、打开溢出中断、装数、使能定时器3中断,使能总中断、启动计数。 那么分频需要用到哪个寄存器呢? 前章博客也讲过了,需要用到定时器3的控制寄存器T3CTL T3CTL|=0XE0; //原创 2016-12-23 17:24:40 · 1015 阅读 · 0 评论 -
定时器(二)
前言前面讲了定时器1,定时器1是16位的,而定时器3和4是8位的,只有两个独立的比较通道,每个通道只能使用一个IO引脚。因此,要使用定时器3或4来控制LED灯的闪烁也非常简单。假如我们要用定时器3查询方式来实现LED1的闪烁,应该怎么做呢? 其实是很简单的,由于是查询方式,所以不需要开启中断,只需要给定时器分频,然后,给定时器装个计数的值。因此只需要用到两个寄存器。捕获比较寄存器TxCCnT3CC原创 2016-12-23 17:23:45 · 640 阅读 · 0 评论 -
定时器(一)
前言关于定时器的好处,我就不一一多说了,至少可以摆脱Delay()函数的不精准计时。什么是定时器?说白了就是精准的计数,数时间而已啊。因此我们只需要怎么使用它,不需要了解他的构造。那么我们怎么利用定时器来控制LED灯的闪烁呢? 首先配置输出模式/*设置P.0为输出模式*/P1DIR|=0x01;我们需要确定使用哪个定时器。这里我们使用Timer1; 然后需要给定时器分频定时器1控制寄存器T1C原创 2016-12-22 21:27:05 · 1714 阅读 · 0 评论 -
串口的中断和接收
前言前面介绍了串口的查询方式,没看过的童鞋可以查看我之前的博客。今天我们来介绍怎么利用终端接收串口的数据。关于串口中断没有繁杂的初始化。只需添加几句话就能实现串口中断了。直接上代码吧。UARTinitial(){ .....//接上篇博客的初始化代码/*串口中断标志位置*/UTX1IF=1;/*允许接收*/U0CSR|=0x40;/*开总中断,接收中断*/IEN0|=0x84;原创 2016-12-22 19:40:20 · 5911 阅读 · 0 评论 -
串口的发送
前言单片机如何与pc机进行通讯呢?可以用串口和网线嘛! 今天我们来讲讲怎么用串口点灯的小程序。 先做程序前,我们先受洗一下串口的使用。在cc2530的单片机上串口有UART模式和SPI模式。我们今天的主角就是UART。 因此我们要选择UARTUSART0控制和状态寄存器U0CSR/*选择UART的方式*/U0CSR|=0x80;接下来我们需要设置UART的模式,比如说是奇校验还是偶校验等等。原创 2016-12-22 13:58:01 · 976 阅读 · 0 评论 -
外设IO概述
前言前面我们讲了通用IO的使用,那么今天我们讲讲外设IO能做什么。 可以理解为外设IO能做更复杂的事情。 比如说外设IO的功能有ADC、USART、TIMER等等。 那么如何实现ADC转换、串口发送、定时器的使用呢。我们知道单片机要想工作,必须要有时钟频率。外设IO也不例外,因此我们先讲讲怎么初始化时钟频率。系统时钟的初始化怎么初始化系统时钟呢?很简单,只要用到两个寄存器。 一个是时钟控制命原创 2016-12-22 13:57:17 · 1816 阅读 · 0 评论 -
通用IO的中断
前言有的人问我,为什么我的博客没有讲有多少引脚,分别是什么之类的问题。我想说的是这些你都可以从官方手册上知道的,本博客只是告诉大家怎么使用罢了。让大家能够更好的理解。接上一篇博客,如何使用中断方式控制灯的闪烁。 中断方式一般有以下几个步骤:设置优先级、使能、判断是否发生中断。第一步,中断优先级的配置已知IP1_X和IP0_X是设置优先级的,其中X是中断优先级组的组名。0的优先级别最低,3的优先级别原创 2016-12-22 13:45:34 · 3511 阅读 · 0 评论 -
通用IO(二)
前言上期我们讲了通用IO的功能寄存器和方向寄存器的使用。不了解的童鞋可以翻看我的博客,这期我们讲讲配置寄存器的使用。我们已经可以实现灯的闪烁了,但我们不知道怎么控制它不要一直闪烁。这时候我们需要用到的是按键,我们需要检测按键是否按下去了。这时候我们就需要用到配置寄存器。配置寄存器PxINP的配置关于配置,无非就是配置0和1嘛,而配置寄存器配置为0代表上拉/下拉状态。1代表三态 具体配置如下,假设原创 2016-12-22 13:44:27 · 897 阅读 · 0 评论 -
无线射频(二)
前言前面大体讲解了一下RF内核的知识,今天我们细讲CC2530_RF_FIFO访问 的相关知识。RF_FIFOCC2530发送或接收数据是通过FIFO操作来进行的。FIFO访问可以分为TXFIFO访问和RXFIFO访问,其操作都是通过SFR寄存器的RFD操作进行。当写入RFD寄存器时,数据被写入到TXFIFO,当读取数据RFD寄存器时,数据从RXFIFO中读出。 unsigned char i;s原创 2016-12-24 09:46:56 · 1587 阅读 · 0 评论