Mbed OS 文档翻译 之 参考(API(驱动(BusIn)))

BusIn

                                                                        

                                                                              BusIn 类层次结构

使用 BusIn API,您可以创建许多可以作为一个值读取的 DigitalIn 引脚。此抽象对于一次检查多个输入非常有用。您可以使用此 API 更快地编写更清晰的代码。

您可以将任何编号的 Arm Mbed 引脚用作 BusIn 中的 DigitalIn。

提示:

  • 总线中最多可以有 16 个引脚。
  • 构造函数中引脚的顺序是字节顺序中引脚的相反顺序。如果你有 BusIn(a,b,c,d,e,f,g,h)那么字节中的位的顺序是 hgfedcba,其中 a 位为 0,b 为位 1,c 为位 2,依此类推。

BusIn 类参考

mbed::BusIn 类参考

公共成员函数
 BusIn (PinName p0, PinName p1=NC, PinName p2=NC, PinName p3=NC, PinName p4=NC, PinName p5=NC, PinName p6=NC, PinName p7=NC, PinName p8=NC, PinName p9=NC, PinName p10=NC, PinName p11=NC, PinName p12=NC, PinName p13=NC, PinName p14=NC, PinName p15=NC)
 BusIn (PinName pins[16])
int read ()
void mode (PinMode pull)
int mask ()
 operator int ()
DigitalInoperator[] (int index)
受保护的属性
DigitalIn_pin [16]
int _nc_mask
PlatformMutex _mutex

BusIn Hello World!

main.cpp                                                                                                                                              导入到 Mbed IDE

/* mbed Example Program
 * Copyright (c) 2006-2014 ARM Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "mbed.h"

BusIn nibble(D0, D1, D2, D3); // Change these pins to buttons on your board.

int main() {
    
    // Optional: set mode as PullUp/PullDown/PullNone/OpenDrain
    nibble.mode(PullNone); 
    
    while(1) {
        // check bits set in nibble
        switch(nibble & nibble.mask()) { // read the bus and mask out bits not being used
            case 0x0: printf("0b0000, D3,D2,D1,D0 are low  \n\r");break;
            case 0x1: printf("0b0001,          D0  is high \n\r");break;
            case 0x2: printf("0b0010,       D1     is high \n\r");break; 
            case 0x3: printf("0b0011,       D1,D0 are high \n\r");break;
            case 0x4: printf("0b0100,    D2        is high \n\r");break;
            case 0x5: printf("0b0101,    D2,  ,D0 are high \n\r");break;
            case 0x6: printf("0b0110,    D2,D1    are high \n\r");break;
            case 0x7: printf("0b0111,    D2,D1,D0 are high \n\r");break;
            case 0x8: printf("0b1000, D3           is high \n\r");break; 
            // ...
            case 0xF: printf("0b1111, D3,D2,D1,D0 are high \n\r");break;
        }
        wait(1);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值