I2C serial 2-wire 中文翻译?
答案:2 悬赏:80
解决时间 2021-02-20 20:26
- 提问者网友:饮鸿
- 2021-02-20 03:36
如题,请问如何翻译呢?是I2C串行2线制通讯吗?
最佳答案
- 二级知识专家网友:为你轻狂半世殇
- 2021-02-20 04:26
直接翻译两线的I2C串行总线,或者直接叫I2C总线,就可以没必要都翻译。
全部回答
- 1楼网友:末路丶一枝花
- 2021-02-20 05:18
http://arduino.cc/en/reference/wire
开个 google 翻译,或者 必应翻译 最多1~2钟就能看懂.
给你一个 ds1307 的例子. 前提是ds1307 内已经有设好了时间.
#include
#define ds1307_i2c_address 0x68
#define reg_sec 0x00
#define reg_min 0x01
#define reg_hour 0x02
#define reg_day 0x03
#define reg_date 0x04
#define reg_mon 0x05
#define reg_year 0x06
#define reg_ctl 0x07
#define reg_ram_start 0x08
#define reg_ram_end 0x3f
void setup() {
wire.begin(); // 开启 i2c 总线(主设备)
serial.begin(9600);
}
void loop() {
wire.begintransmission(ds1307_i2c_address); // 开启发送
wire.write(reg_sec); // 写入 ds1307 秒地址
wire.endtransmission(); // 结束发送
wire.requestfrom(ds1307_i2c_address, 1); // 请求 ds1307 一个字节
uint8_t s;
if(wire.available() == 1) { // 可否获取1个数据
s = bcd2dec(wire.read() & 0x7f); // 读取 ds1307 秒
serial.println(s);
}
delay(1000);
}
uint8_t dec2bcd(uint8_t dec) {
return ((dec/10 * 16) + (dec % 10));
}
uint8_t bcd2dec(uint8_t bcd) {
return ((bcd/16 * 10) + (bcd % 16));
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |