WINCE串口通讯经验小结
這兩天由于工作要求,需要在WINCE上開發一個通過串口傳輸文件的小工具,經過測試,調用WriteFile一直寫數據時,當數據長度超過50K就會返回WriteFile出錯,而且使用GetLastError返回的錯誤值是87,1814兩種,如果出錯時不予理解,繼續向串口寫數據,每隔50K就會產生一個WRITEFILE錯誤,如此循環大概到總共寫了200多K時,整個系統都會崩潰掉。打印崩潰地址如下:
? ? ? ? ? ??Exception 'Data Abort' (4): Thread-Id=05490006(pth=83bbe978), Proc-Id=00400002(pprc=81529308) 'NK.EXE', VM-active=0675000e(pprc=82297a08) 'edm2.exe'
PC=c00713ac(k.coredll.dll+0x000513ac) RA=c0ad637c(orionvsp.dll+0x0000637c) SP=d235f5b0, BVA=0019f9d4
然后再往串口寫數據,永遠都失敗了。估計是串口驅動異常了。在網上搜索了很多資料,均無解決辦法。最終終于被我自己找到一個解決方法,每次當WRITEFILE出錯或者寫的長度等于0字節時就關閉串口,再重新打開串口,這樣就不會導致整個系統的串口驅動崩潰。我們測試過,傳輸12M的文件都沒有問題,發送的文件和接收的文件大小完全一樣。
哈哈,終于搞定了!!!
總結
以上是生活随笔為你收集整理的WINCE串口通讯经验小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot aop加载流程
- 下一篇: iOS线程锁中你还不知道的内容