誰知道CH341總線方式(BUS)的API都有哪些 怎么使用?手冊里只有EPP方式和MEM方式的API介紹 急 謝了!?。。。。?/p>
發(fā)一個(gè)當(dāng)時(shí)技術(shù)人員發(fā)給我的資料:
在并口方式下直接發(fā)出命令包即可,自動(dòng)進(jìn)入BUS模式。 例子: UCHAR addr, data; ULONG out_len, in_len; UCHAR out_buf[32]; UCHAR in_buf[32];
// WRITE 1 BYTE addr = 0x35; // 指定要讀寫的I/O地址 data = 0x85; // 指定要寫的數(shù)據(jù) out_buf[0] = mCH341A_CMD_IO_ADDR; // BUS方式命令碼 out_buf[1] = addr | mCH341A_CMD_IO_ADDR_W; out_buf[2] = data; out_len = 3; // 準(zhǔn)備輸出3個(gè)字節(jié) CH341WriteData( index, out_buf, &out_len ); // 向addr寫入data
// READ 1 BYTE addr = 0x2D; // 指定要讀寫的I/O地址 out_buf[0] = mCH341A_CMD_IO_ADDR; // BUS方式命令碼 out_buf[1] = addr | mCH341A_CMD_IO_ADDR_R; out_len = 2; // 準(zhǔn)備輸出2個(gè)字節(jié) CH341WriteRead( index, out_len, out_buf, mCH341_PACKET_LENGTH, 1, &in_len, in_buf ); // 從addr讀取數(shù)據(jù) data = in_buf[0]; // 讀出的數(shù)據(jù)
// WRITE 2 BYTES THEN READ 3 BYTES, 任意組合 out_buf[0] = mCH341A_CMD_IO_ADDR; // BUS方式命令碼 out_buf[1] = mCH341A_CMD_IO_ADDR_W | 0x09; // 向09H地址寫入數(shù)據(jù)98H out_buf[2] = 0x98; out_buf[3] = mCH341A_CMD_IO_ADDR_R | 0x12; // 從12H地址讀出一個(gè)字節(jié),返回在in_buf[0]中 out_buf[4] = mCH341A_CMD_IO_ADDR_W | 0x2A; // 向2AH地址寫入數(shù)據(jù)C4H out_buf[5] = 0xC4; out_buf[6] = mCH341A_CMD_IO_ADDR_R | 0x01; // 從01H地址讀出一個(gè)字節(jié),返回在in_buf[1]中 out_buf[7] = mCH341A_CMD_IO_ADDR_R | 0x03; // 從03H地址讀出一個(gè)字節(jié),返回在in_buf[2]中 out_len = 8; // 準(zhǔn)備輸出8個(gè)字節(jié),最大31,多于31可以分為兩次 CH341WriteRead( index, out_len, out_buf, mCH341_PACKET_LENGTH, 1, &in_len, in_buf ); // 寫入數(shù)據(jù)并讀取數(shù)據(jù) data = in_buf[0]; // 從12H地址讀出的數(shù)據(jù) data = in_buf[1]; // 從01H地址讀出的數(shù)據(jù) data = in_buf[2]; // 從03H地址讀出的數(shù)據(jù)
只寫用CH341WriteData,有寫有讀用CH341WriteRead(也可以先CH341WriteData再CH341ReadData)
用總線方式需要先選中地址再寫數(shù)據(jù),確實(shí)比較慢,每次讀寫操作大概在1~2ms左右