標題: 關于單片機+TM1637芯片點亮6位數(shù)碼管疑惑 解決了,但不明白工作原理 [打印本頁]

作者: xielisheng    時間: 2019-7-26 16:37
標題: 關于單片機+TM1637芯片點亮6位數(shù)碼管疑惑 解決了,但不明白工作原理
TM1637芯片是IIC芯片,其中有一條是停止信號的程序

void stop(void)
{
     DIO  =  0;         //數(shù)據(jù)線置低
     CLK  =  1;         //時鐘線置高
     delayμs(5);
     DIO  =  1;  
       //數(shù)據(jù)線置高

     delayμs(5);
}


看前兩條,這樣可以讓數(shù)碼管顯示,但將程序倒過來就顯示不了了,如下
void stop(void)
{
     CLK  =  1;         //時鐘線置高
     DIO  =  0;         //數(shù)據(jù)線置低
     delayμs(5);
     DIO  =  1;  
       //數(shù)據(jù)線置高

     delayμs(5);
}


為什么?折騰了好久雖然解決了,但不明白工作原理。

作者: wc86110    時間: 2019-7-27 06:11
IIC 關鍵看時序,就像給鐘表上鏈必須要扭對方向
作者: cphnkj188    時間: 2019-7-27 10:46
時序,時間先后次序,
作者: xmcolong    時間: 2024-9-1 01:19

看圖!, DIO要先拉低, CLK才開始.
要掌握一個芯片, 關鍵要學會如何看時序圖, 時序圖上清清楚楚了!

作者: 188610329    時間: 2024-9-1 22:19
原因很簡單,IIC是一個規(guī)范協(xié)議,他有嚴格的規(guī)范,而TM1637用的不是IIC規(guī)范,他用的是微型雙線傳輸協(xié)議,雖然很像IIC……
你有沒有看出來,改變順序后,他是發(fā)送了一個Start信號?
而,對于TM1637來講,你傳輸?shù)乃行畔,都要由Stop信號來完成,你在這個時候,又發(fā)了一個Start,那么你前面法的所有內用都作廢了。
作者: zhuls    時間: 2024-9-2 07:49
即然是走協(xié)議了,當然要遵守協(xié)議的時序了,時序,就是信號的時間和順序。。。亂了就是不行!
作者: cy009    時間: 2024-9-2 08:31
嚴格來說,TM1637不是真正的IIC傳輸協(xié)議,可以稱為仿IIC或類IIC




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1