按照pdf上的方法用ch454驅(qū)動16位數(shù)碼管,居然點不亮,請教各位大蝦。

郁悶呀 供電正常,排除硬件問題,sda時序數(shù)據(jù)完全正常,clk正常。

//初始化子程序 void Init_Led(void)

{ //Initialise GPIO pin to general gpio EALLOW; GpioMuxRegs.GPFMUX.bit.MFSXA_GPIOF10 = 0; //RST GpioMuxRegs.GPFDIR.bit.GPIOF10 = 1; GpioMuxRegs.GPFMUX.bit.MDXA_GPIOF12 = 0; //SCLK GpioMuxRegs.GPFDIR.bit.GPIOF12 = 1; GpioMuxRegs.GPFMUX.bit.MDRA_GPIOF13 = 0; //SDA GpioMuxRegs.GPFDIR.bit.GPIOF13 = 1; EDIS; //Initialise the chip ch454; RST=1; DSP28x_usDelay(200); RST=0; DSP28x_usDelay(1); SDA=1; DSP28x_usDelay(1); SCL=1; SendLedData(CH454_RESET); //軟復(fù)位 SendLedData(CH454_SYSPARA(0x0049)); // 配置系統(tǒng)參數(shù) SendLedData(CH454_DISPARA(0x002A)); //顯示參數(shù) SendLedData(CH454_TWINKING(0x0000)); //閃爍參數(shù)

}

//發(fā)送數(shù)據(jù)的程序 void SendLedData(Uint16 data) { Uint8 i; DINT; SDA=1; DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1);

// SDA=0;

DSP28x_usDelay(1); SCL=0; DSP28x_usDelay(1); for(i=0;i < 8;i++) { if(data & 0x8000) { SDA = 1;} else { SDA = 0;}

data = data << 1; DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1); SCL=0; DSP28x_usDelay(1); }

DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1); SCL=0; DSP28x_usDelay(1); for(;i < 16;i++) { if(data & 0x8000) { SDA = 1;} else { SDA = 0;}

data = data << 1; DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1); SCL=0; DSP28x_usDelay(1); } DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1); SCL=0; DSP28x_usDelay(1); SDA=0; DSP28x_usDelay(1); SCL=1; DSP28x_usDelay(1); SDA=1;

EINT; }


最后是簡化版的main void main() { Init_Led(); for(;;) { SendLedData(0x5030); //發(fā)送A的低位 SendLedData(0x60FC); //發(fā)送A的高位 SendLedData(0x5030); //發(fā)送A的低位 SendLedData(0x60FC); //發(fā)送A的高位

} }

大蝦幫我看下程序哪兒出問題了 萬分多謝


發(fā)個例子程序給您參考一下: 兩線接口操作CH454動態(tài)驅(qū)動數(shù)碼管(C51)

UploadImages/20113288384242.rar


下雨的天你好 有以下疑惑請教,以下代碼從你給我的txt中考出來的 #define CH454_RESET 0x0201 // 復(fù)位 #define CH454_CLR_BIT 0x0180 // 段位 …………

定義似乎和pdf文檔不符,文檔中給出的是 芯片內(nèi)部復(fù)位:000100-00000001B,字節(jié)1的位15和位14固定為0和1 所以編碼應(yīng)該是01000100-00000001B 即0x4401,為何你定義為0x0201,不解,基本上所用編碼都和pdf上不同,不明白

第二個問題, // 2線接口的CH454定義 #define CH454_I2C_ADDR 0x40 //

CH454的地址 #define CH454_I2C_MASK 0x3E //

CH454的2線接口高字節(jié)命令掩碼

這段完全不明白???文檔中未見相關(guān)說明

說明一下,我使用的是dsp2812,這邊的型號是ch454d


請求解釋


還有就是我的sda引腳是單向輸出,如何處理ack信號


你也可以按照手冊中的命令發(fā)送,前提是數(shù)據(jù)一定要正確,我們這樣寫是考慮到和其他芯片兼容,其實最后算出來也就是手冊中的命令,具體你可以算一下。 另外,CH454沒有ACK,所以你無須等待ACK,發(fā)送完后直接拉高SDA就可以。


下雨的天你好 向你請教 不顯示的問題我已經(jīng)解決,但是不管是初始化,還是發(fā)送數(shù)據(jù),都必須放在循環(huán)中不停的發(fā)才可以顯示,也就是必須不停的刷新,求教為何?


請檢查以下部分: 1.去掉程序中的復(fù)位命令; 2.檢查你的電源系統(tǒng),尤其是如何給CH454供電的,如果供電的線太細,容易引起CH454復(fù)位。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频