如圖: 不知這軟件開源的嗎... 想知道軟件是如何操作驅(qū)動(dòng)進(jìn)行讀寫的.......
該軟件不是我們提供 關(guān)于上位機(jī)編程,請到我們網(wǎng)站下載ch341evt.zip文件
ch341evt.zip 里的內(nèi)容很少有對25系列操作的方法. 只找到一小段 AT25F512_ReadBlock 讀取塊的操作的代碼 也沒有對單片機(jī)的操作的資料說明等 資料好少啊
里面的例程也似乎有問題, 只要插上CH341A做的板(完全正常的板), 再運(yùn)行里的例程, 軟件無法啟動(dòng)的
25系列是spi接口的,所以要通過ch341dll.h中的spi接口api來控制25系列 里面的例程我們都測試過,應(yīng)該沒有問題,是不是你操作不對?請把出錯(cuò)信息貼出來看看
能否提供點(diǎn) 用 CH341StreamSPI4 函數(shù) 完整讀寫25系列IC所有內(nèi)容的的DEPHI代碼啊
----------------------------
問題找到了 插入Ch341A的板到USB上, 再啟動(dòng)程序, 會(huì)在下面SendLedVal過程中停留不響應(yīng), 我把這些代碼注釋掉就正常了 如下代碼引起的, 我注釋掉LED示例的相關(guān)代碼就沒問題了, 可以了...
Procedure SendLedVal();
Var mBuf: Array[0..(mMAX_BUFFER_LENGTH - 1)] Of byte; mLen: cardinal; Begin If (mOpen = True) Then Begin mLen := 1; mBuf[0] := ((BoolToByte(Form1.LED1.Checked) Shl 7) + (BoolToByte(Form1.LED2.Checked) Shl 6) + (BoolToByte(Form1.LED3.Checked) Shl 5) + (BoolToByte(Form1.LED4.Checked) Shl 4) + (BoolToByte(Form1.LED5.Checked) Shl 3) + (BoolToByte(Form1.LED6.Checked) Shl 2) + (BoolToByte(Form1.LED7.Checked) Shl 1) + (BoolToByte(Form1.LED8.Checked) Shl 0)); //組合按鈕鍵值 If (Form1.memadd0.Checked = True) Then //地址0 Begin If (CH341MemWriteAddr0(mIndex, @mBuf[0], @mLen) = FALSE) Then application.MessageBox('發(fā)送LED狀態(tài)值失??!', 'CH341', MB_ICONEXCLAMATION); End Else Begin If (Form1.memadd1.Checked = True) Then Begin If (CH341MemWriteAddr1(mIndex, @mBuf[0], @mLen) = FALSE) Then application.MessageBox('發(fā)送LED狀態(tài)值失??!', 'CH341', MB_ICONEXCLAMATION); End; End; End Else application.MessageBox('設(shè)備未打開!', 'CH341', MB_ICONEXCLAMATION); End;