//寫16位命令 void write_command(int command) { ch452_start(); //啟動(dòng)總線 ch452_write_byte((uchar)(command>>7)&CH452_MASK|CH452_ADDR); ch452_write_byte((uchar)command); //寫低位 ch452_stop(); //結(jié)束總線 } //讀取按鍵 uchar read_command(int read_cmd) { uchar value; ch452_start(); //啟動(dòng)總線 ch452_write_byte(read_cmd); //寫高位 ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01); value=ch452_read_byte(); //讀取數(shù)據(jù) ch452_stop(); //結(jié)束總線 return value; } 尤其是此語句:ch452_write_byte((uchar)(command>>7)&CH452_MASK|CH452_ADDR); 和 ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01);
查看: 3558
回復(fù): 1
求助,誰能給一個(gè)CH452 16位的讀寫函數(shù)的具體解釋
熱門產(chǎn)品 :
CH394: 以太網(wǎng)協(xié)議棧芯片
ch452_write_byte((uchar)(command>>7)&CH452_MASK); 這部分是屏蔽掉命令參數(shù)的無用位,并把最低位置0,表示寫操作,|ADDR表示選中接高電平的那片Ch452。ch452_write_byte((uchar)(read_cmd>>7)&CH452_MASK|CH452_ADDR|0x01);相比此處多了0x01,即把最低字節(jié)置1,表示讀操作,這個(gè)結(jié)合手冊上的讀寫時(shí)序就比較明白了。
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號登錄