關(guān)于CH452的讀寫方式(3線接口)

以下是貴公司的寫例程: /* ********************************************************************** ** 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”,求指點迷津???

您好,對于CH452_WRITE(UINT16 COMMAND)的修改是不正確的,建議您仔細看一下CH452寫命令時序,詳見手冊第9頁。 CH452_WriteByte((Int8U)(cmd >> 7) & CH452_I2C_MASK | CH452_I2C_ADDR1; 這條語句不只是把命令碼分兩次發(fā)出去,還有選擇芯片,設(shè)置寫操作的功能。讀到的鍵值錯誤,是不讀函數(shù)也有這個問題呢?


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

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