#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个:

  1.  PxSEL:端口功能选择,设置端口是通用I/O还是外设功能。
  2.  PxDIR:作为通用I/O时,用来设置数据的传输方向。
  3.  PxINP:作为通用输入端口时,选择输入模式是上拉、下拉还是三态。
  4.  Px:数据端口,用来控制端口的输出或获取端口的输入。

使用“&=”将寄存器指定位清0,同时不影响其他位的值。
使用“|=”将寄存器指定位置1,同时不影响其他位的值。

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円で始められる本格的なお店のホームページ!

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:45:07 (1628d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze