※ 引述《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
.....
}
以上給您參考