本帖最后由 sinside 于 2021-9-15 13:08 編輯
首先, 假設你的通訊是對的(我沒有細看你的程序), 先只驗證下面的程序是否正確:
switch (len)
{
case 2:e=b;b=0; break;
case 3:e=b*10+c;break;
case 4:e=b*100+c*10+d;break;
}
假設你的輸入(設置斷點或者單獨把這段程序直接執行) 在進程序前 把b的值設置成0xA1, len分別設置成 2, 3, 4, c = 0, d = 0, 看看len=2的時候e計算是否正確, len=3的時候e的計算是否正確, len=4的時候是否正確.
如果都正確, 那么你原來不正確, 是否是有什么條件與上面的設置不一樣? 才導致結果不正確?
再逐一排查是否是變量的類型問題, 還是b的值問題, 還是c的值問題, 還是e, len的值哪一個有問題?
上面說的只是一種調試的方法, 不知道我是不是說清楚了? (就是你的計算就放在哪里, 進計算前, 所有的條件都定了, 看看結果是不是你預料的, 如果不是就逐一排查各種條件)
|