做過一系列的串列埠裝置通訊,一直都 createfile() 然後 writefile() ,完了就 closehandle();沒出什麼問題,這次做唯拓的一款led顧客顯示屏,依然這麼做,因為事先使用過他們提供的 demo 程式測試過裝置,因此寫的 dll 也能正常被呼叫,交給其他同事使用,接好裝置後顯示正常的 0.00 ,呼叫我的程式後裝置全暗,什麼都不顯示。
用廠方的demo測試,裝置又能顯示,再呼叫我的程式,發現可以正常工作,廠方提供的文件也沒做其他說明,只說裝置通電後波特率被設定為 2400,不需要再設定。經過一番思索,應該還是在串列埠初始化上面有問題,於是找到一款串列埠資料檢測工具 commmonitor。
呼叫我的程式串列埠資料傳輸情況如下圖:
開啟廠方工具時所得串列埠資料傳輸如下圖:
我想問題應該就在此了,於是根據如上截圖的資訊,在程式中加了一段設定串列埠引數的**
setupcomm(handle, 1024, 512);
dcb dcb = ;
dcb.dcblength = sizeof(dcb);
dcb.baudrate = cbr_2400;
dcb.fbinary = 1;
dcb.fparity = 1;
dcb.fdtrcontrol = dtr_control_enable;
dcb.frtscontrol = rts_control_disable;
dcb.xonlim = 256;
dcb.xofflim = 256;
dcb.bytesize = 8;
dcb.parity = noparity;
dcb.stopbits = onestopbit;
dcb.xonchar = 17;
dcb.xoffchar = 19;
dcb.eofchar = 26;
setcommstate(handle, &dcb);
}ok,加入此段**後再看串列埠資料傳送情況如下圖:
程式也能正常控制裝置了,所以串列埠通訊時,如果出現莫名其妙的問題,應該檢視一下是否為串列埠引數設定不正確。
GDI程式設計需要注意的地方 控制代碼洩漏
寫gdi的時候,我們經常會由於粗心大意,忘記釋放gdi資源,導致gdi控制代碼洩露。再加上如果單元測試做的不好,就會在產品發布以後發生問題。眾所周知,windows上對於乙個程序允許的最大gdi控制代碼數量為9999,如果程式有大量的gdi控制代碼沒有被及時 那麼程式就會表現的不正常。如果這種問題發...
java需要注意的地方2
1.abstract class name 大俠們,這有何錯誤?答案 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 有錯嗎?答案 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final...
unique約束需要注意的地方
sql 建立作者表 create table author 主鍵 id int primary key,姓名不能為空 name nvarchar 8 not null,年齡必須大於0小於120 age tinyint constraint ck age check age 0 and age 120...