※ 引述《woody5202001 (狗爷)》之铭言:
小弟想法, 如果有错还是不妥还请指正
: 大家好,小弟最近开始接触Arduino nano,觉得非常好玩:P
: 最近遇到一个问题是在对一颗IC做I2C沟通
: 在使用该IC的某个功能时需要连续送出多组Stop讯号去触发
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这部分如同前辈说的只能用 IO, 小弟认知的原因是
他是单纯要给讯号触发, 若你今天是用 Wire.endTransmission ()
https://www.arduino.cc/en/Reference/WireEndTransmission
在某些时候 SDA pin 会试设成 input( 高祖抗 ), 故无法使用
, 如果是小弟会把这波型兜成一个 function 比如叫 wakeup()
: Wire.endTransmission ()这个语法如果单独使用-
: 会产生一个Start讯号跟9 bit(含Ack)的clock接着才会输出Stop讯号
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一般单芯片的通讯模组整个传输都是兜在一起的, 除非适用 gpio 自己写波形
: 这边想问的是有没有什么语法可以只输出Stop讯号而不输出其他讯号呢?
所以 ic 的 initial 可以大概写成
init_IC_model()
{
wakeup();
init_i2c(); // gpio set up i2c
i2c_write();// 设 ic reg
.....
}
以上给您参考