以下是貴公司的寫例程: /* ********************************************************************** ** CH452_Write 寫命令 ********************************************************************** */ void CH452_Write(Int16U cmd) { CH452_I2C_Start2(); CH452_WriteByte((Int8U)(cmd >> 7) & CH452_I2C_MASK | CH452_I2C_ADDR1); CH452_WriteByte((Int8U)cmd); CH452_I2C_STOP(); } 以下是我自己修改的寫例程: void CH452_Write(Int16U cmd) { CH452_I2C_Start2(); CH452_WriteByte((Int8U)(cmd >> 8)); CH452_WriteByte((Int8U)cmd); CH452_I2C_STOP(); }
以下是對CH452參數(shù)做出的修改: /* 常用命令 */ #define CH452_CMD_NOP 0x0000 /* 空操作 */ //#define CH452_CMD_RESET 0x0201 /* 復(fù)位 */
#define CH452_CMD_RESET 0x6401 /* 復(fù)位 */ // //0110 0100 0000 0001
#define CH452_CMD_SLEEP 0x0202 /* 進入睡眠狀態(tài) */ #define CH452_CMD_SYSOFF 0x0400 /* 關(guān)閉顯示,關(guān)閉鍵盤 */ //#define CH452_CMD_SYSON0 0x0402 /* 關(guān)閉顯示,開啟鍵盤 */
#define CH452_CMD_SYSON0 0x6802 /* 關(guān)閉顯示,開啟鍵盤 */ // //0110 1000 0000 0010
#define CH452_CMD_SYSON1 0x0403 /* 開啟顯示,開啟鍵盤 */
//#define CH452_GET_KEY 0x0700 /* 獲取按鍵代碼 */
#define CH452_GET_KEY 0x6fff /* 獲取按鍵代碼 */ // //0110 1111 1111 1111
#define CH452_CMD_ACK 0x07FF /* 使能I2C返回ack應(yīng)答 */ 其他部分未做改動,按我的理解這樣是可以對其進行讀寫的,按鍵按下也可以接收到CH452的按鍵中斷,為什么我接收不到正確的數(shù)據(jù)呢????無論哪個按鍵按下我接收到的都是“FF”,求指點迷津???