韌體架構是↓
CMD=1;
while(1)
{
switch(CMD):
{
default:
case 1:
程式碼;
break;
case 2:
程式碼;
break;
case 3:
程式碼;
break;
case 4:
程式碼;
break;
}
}
Case 1就是閑置用的,所以進入while前,預設CMD = 1;
我在新版韌體寫了一個需要很常用的Case 5 ,需要去識別硬體上的某個按鈕狀況(防呆)。
可是卻遇到舊版的相容性問題,只要在舊版韌體收到Case 5的指令,就整個卡住。
之後不管軟體端送出什麼支援或不支援的指令,
只會在VISA Read的時候,收到錯誤碼-1073807339
Hex(0xBFFF0015)Timeout expired before operation completed.
請問各位有經驗的大大,假設舊版韌體完全不更動,遇到這種相容性問題有解嗎?
Timeout問題已經解決,似乎是讀取Buff的時候設定6bit, 可是因為韌體指令不支援而沒送任何資料,實際上BUFF只有0bit,所以在read的時候卡在那等Timeout。
但是還是存在韌体無法在接收任何的指令的問題。
另外想請問韌體這樣當機是因為收到的case不屬於while switch的其中一個,導致無法Break??
Lovesmartx40668.4281828704