相比最早的發布版本,在實際應用中 cserialport必須要修改一些地方 後續會陸續放出
標記一: run-time check failure #3 - the variable 'comstat' is being used without being initialized
錯誤解決方法
方案1: 改變專案配置屬性
一種解決方案是改變基本執行時檢查(changing the runtime checks in project settings):在選單project->project properties-> c/c++ -> code generation-> basic runtime checks --> change to 'default',在中文版中是:專案-〉屬性-〉配置屬性-〉c/c++**生成-〉基本執行時檢查-〉設定為預設,當將基本執行時檢查改為預設之後,編譯自然順利通過了,向串列埠除錯助手傳送訊息正常了,再從串列埠除錯助手向serialporttest傳送訊息時,也正常了。
方案2:改變comstat變數屬性
另一種解決方案是將cserialport.cpp中的comstat comstat;改為static comstat comstat;這樣改了之後,debug順利通過,然後除錯,與串列埠除錯助手相互發訊息都ok了。為什麼這樣就能解決呢?其實當你使用debug解決方案時,它的基本執行時檢查初始設定為:兩者(/rtc1,等同於 /rtcsu),這個兩者是指:堆疊幀(/rtcs),未初始化的變數(/rtcu)。由於它要檢查未初始化的變數,所以將serialport.cpp中的comstat comstat;改為static comstat comstat;就可以正常使用cserialport類了。
以上是在debug下的解決方案,當在release編譯狀態時,你會發現並不需要將comstat comstat;改為static comstat comstat;就能編譯成功並且傳送接收訊息正常。其實,在release下,它的基本執行時檢查初始設定已為預設。這應該也算是第一種解決方案之內。
而當你將它設定為兩者(/rtc1,等同於 /rtcsu)時,不論是否將comstat comstat;改為static comstat comstat;,編譯都不能通過,報錯「「cl.exe」返回的結果有誤。",這個應該是屬於release的問題了,另當別論了。
方案3:
新增**:memset(&comstat, 0, sizeof(comstat)); //vc6不用這句也可以用,2008就要加
本人使用2008 直接方案三
暑期實踐 嵌入式串列埠屏專案
暑期在永珍融通公司參與乙個嵌入式的專案,參與時間近兩個月,昨天正式結束,記錄一下這個時間節點.在這個專案中我主要負責的部分是串列埠屏的介面顯示,簡單的說就是用lpc的板子通過串列埠給螢幕傳送指令,動態控制螢幕上的顯示內容.串列埠通訊是指資料一位一位的按順序通訊,通訊線路非常簡單,線路成本低,適合遠距...
arm電子相簿專案 串列埠模組篇uart c
arm電子相簿專案 串列埠模組篇uart.c 工具 keil4 arm開發板 mini2451 s3c2451 串列埠線 功能 顯示 自動切換 手動切換 暫停切換 可設定 顯示時鐘 精確顯示 可設定 描述 串列埠模組主要負責接收 傳送給串列埠的資訊並通過串列埠助手顯示出來,方便除錯,還可以用到串列埠...
linux debug串列埠改為普通串列埠
origin 和我們的需求一樣,我們是如果使用者想把串列埠作為console的話,那麼在系統啟動的時候,輸入回車來開啟console,否則就作為普通的串列埠用。1,在核心驅動裡,不要將串列埠初始化為console,如我的 uclinux l200v40 linux 2.4.x drivers cha...