#author("2019-10-29T16:26:56+08:00","default:Admin","Admin") ZigBee ※This article is based on ZigBee Stack 2.51.a 概要 †CC2530的通用I/O端口相关的常用寄存器有下面4个:
使用“&=”将寄存器指定位清0,同时不影响其他位的值。 CC2530里共分成三组IO口: P0, P1, P2 P0组和P1组里都有8个IO口, P2组里有5个IO P1_7表示P1组里第7个IO.(IO口从零开始计数) 输入输出引脚(gpio) PxSEL †寄存器PxSEL(x=0,1,2 即P0SEL,P1SEL,P2SEL) PxSEL为一个字节,即8位,每一位对应具体的IO组中相应的一个IO, 决定它是普通IO还是片上外设:0表示普通IO, 1表示 片上外设 (复位默认为0) P0SEL&=~0x30 //0x30就是0011 0000,(这两个1就是对应的地5,4引脚) //~0x30就是1100 1111 二进制从右向左数 P0 P1 P2 P3 P4 … P7 P0SEL &= ~0x30; //设置P0.4和P0.5 口为普通IO P0DIR |= 0x30; //设置P0.4和P0.5为输出 P0_4 = 1; //设置为高电平 P0_5 = 1; //设置为高电平 高电平继电器断开;低电平继电器吸合 P1SEL&=~(1<<0); // 仅将P1SEL第0位清0,P1_0定义为普通IO P1SEL&=~(1<<3); // 仅将P1SEL第3位清0,P1_3定义为普通IO P1DIR|= (1<<0); // 仅将P1DIR第0位置1,P1_0定义为输出(不懂) P1DIR&=~(1<<3); // 仅将P1DIR第3位清0,P1_3定义为输入(不懂) P1INP †设置三态 //按键初始化 上拉模式 : P1INP&=~(1<<3); // 仅将P1INP第3位清0,P1_3定义为上拉/下拉模式 P2INP&=~(1<<6); // 仅将P2INP第6位清0,整个P1口定义为为上拉模式(不懂) //按键初始化 下拉模式 : P1INP&=~(1<<3); // 仅将P1INP第3位清0,P1_3定义为上拉/下拉模式 P2INP|=(1<<6); // 仅将P2INP第6位清0,整个P1口定义为为上拉模式 //按键初始化 三态模式 : P1INP|=(1<<3); //仅将P1INP第3位置1,P1_3定义为三态模式 I/O端口中,有的上下拉电阻可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口类似于一个三极管的集电极C, •当C接通过一个电阻和电源连接在一起的时候,该电阻成为C上拉电阻,该端口常态时为高电平, 用于检测低电平的输入 ; •如果C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口常态时为低电平,用于检测高电平的输入 ; &ref(): File not found: "ZigBee_寄存器.png" at page "+ZigBee+寄存器"; 月額たった 1,050円で始められる本格的なお店のホームページ! コメント: |