zigbee深入浅出第二讲硬件相关IO操作

Posted 超级可爱的夹心小朋友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zigbee深入浅出第二讲硬件相关IO操作相关的知识,希望对你有一定的参考价值。

1.要掌握zigbee基本工作电路
2.zigbee无线模块于TI CC2530基本工作电路有什么不同。
多出来一块复位芯片,从CC2530芯片直接引出下载的相关5跟线,为CC2530下载程序,五根线为:电源、地线、P2_1 35、P2_2 34、RESET_N 20。
3.学会随心所遇的控制所有口子的输入输出
CC2530工作范围:2-3.6V(推荐3.3V)
一个有21个通用IO口,分别为:P0_0 到P0_7(8个)、P1_0 到P1_7(8个)、P2_0 到P2_4(5个),这些口子可以作为普通或对应的片上外设。其中P1_0 P1_1 有20mA的输出驱动能力,其余的只有4mA.

输出怎么配置:
需要让P1_0处于普通IO口模式,非片上外设的模式,则P1SEL的第0位为0。
管理所有IO口处于普通IO模式还是片上外设由P0SEL、P1SEL、P2SEL决定。PxSEL寄存器(x=0、1)相应的一个IO,决定它是普通IO口还是片上外设,0表示普通IO口,1表示片上外设。 默认接口是0,所以有时候作为普通IO口时有时候不写。

让P1_0处于输出状态,非输入状态。找到P1DIR第0位,让它等于1,即P1_0=1
管理所有IO口处于输入状态还是输出状态由P0DIR P1DIR P2DIR决定。PxDIR寄存器(x=0、1)每一位对应具体的IO组中的相应的一个IO,决定输入还是输出,0表示输入,1表示输出。默认接口是0。

让P1_0处于上下拉模式,非三态状态。找到P1INP第0位,让它等于0,即P1_0=0
管理所有IO口处于上下拉状态还是三态状态由P0INP、P1INP、P2INP决定。PxINP寄存器(x=0、1)在输入请的情况下,每一位对应具体的IO组中的相应的一个IO,决定它是上下拉模式还是三态,0表示上下拉,1表示三态。P2INP寄存器功能也是一样的,特别注意:其中后面的3位决定在配置为上下模式的时候,组为上拉,还是下拉,0表示是上拉,1表示下拉。默认接口是0。
P2INP寄存器位      7     6     5     4     3     2     1     0
Px组对应的IO口的位 P2组  P1组  P0组  P2_4  P2_3  P2_2  P2_1  P2_0

让P0_6处于普通IO口,非片上外设,则P0SEL的第6位为0 
让P0_6处于输入状态,非输出状态,则P0DIR的第6位为0
让P0_6处于上拉、下拉或三态中的一种状态,

#include<iocc2530.h>
void main()

P0SEL&=0xEF;//1110 1111 普通IO口
P0DIR|=0x10;//0001 0000 输出状态
P0_4=1;//P0_4输出高电平

P0SEL&=0xBF;//1011 1111 普通IO口
P0DIR&=0xBF;//1011 1111 输入状态
P0INP&=0xBF;//1011 1111 让P0_6处于上下拉模式
P2INP&=0xDF;// 1101 1111 让P0组处于上拉模式

while(1);//死循环

 if(1==P0_6)
 //检测到P0_6高电平
 P0_4=0;
 
 else
 //检测到P0_6低电平
 P0_4=1;
 

以上是关于zigbee深入浅出第二讲硬件相关IO操作的主要内容,如果未能解决你的问题,请参考以下文章

Git应用详解第二讲:Git删除修改撤销操作

zigbee学习深入浅出第三讲外部中断

C#结构化编程基础(金老师编程课第二讲)

第二讲

跟我学《JavaScript高程3》 第二讲,课程笔记

zigbee组网函数在哪儿