Arduino我想把8个io口读到的值放到一个字节里,应该怎么写

2020-05-03 社会 98阅读

什么arduino板子,是哪8个IO?
如果是uno或者nano或者mini,需要读取的数字口是0~7,那么,PIND里的值就是你要值。
这是因为,arduino的数字接口0~7,对应atmega328的PD0~PD7引脚。
示例:

uint8_t Read(void)
{
    return PIND;
}


如果若非上面的情况,那可以这样:
打比方说,需要读取的数字口是3~10,示例如下:

uint8_t Read(void)
{
    uint8_t tmp;
    tmp = 0;
    tmp |= (digitalRead(3)  << 0);
    tmp |= (digitalRead(4)  << 1);
    tmp |= (digitalRead(5)  << 2);
    tmp |= (digitalRead(6)  << 3);
    tmp |= (digitalRead(7)  << 4);
    tmp |= (digitalRead(8)  << 5);
    tmp |= (digitalRead(9)  << 6);
    tmp |= (digitalRead(10) << 7);
    return tmp;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com