專家講解用.NET編寫串口程序的一點(diǎn)心得

字號(hào):

雖然在大學(xué)的時(shí)候?qū)W的是計(jì)算機(jī)專業(yè),但現(xiàn)在的本科生的計(jì)算機(jī)水平我想大家心里都有數(shù)。到單位后閑了很長一段時(shí)間。但后來就慢慢開始有了些項(xiàng)目,一開始就是有關(guān)串口通信的。難度大了點(diǎn),但我在的地方是一個(gè)不可以輕易說“不”的地方,只好硬著頭皮開始干了,為了與時(shí)俱進(jìn)我選擇了vs.net2003雖然事實(shí)證明成熟的通信協(xié)議用成熟的語言(vc6,VB6)可能效果更好些.但為了和新一代編程語言更好的接觸,,,,,,,
    說起串口通信,無非是create file開串口,write file向串口寫數(shù)據(jù),read file從串口讀數(shù)據(jù)。再結(jié)合具體設(shè)備的相關(guān)數(shù)據(jù)格式就可以編程了。我建立的是VC.NET,WINDOWS窗體工程。于是麻煩就開始出現(xiàn)了。在.NET的窗體工程里我很喜歡像在VB里編程那樣,直接雙擊按鈕之類的控件,然后在Form1.h里直接寫程序,能不用函數(shù)的就不用函數(shù)。很快,createfile函數(shù)無法識(shí)別,但在編程窗口里系統(tǒng)能認(rèn)識(shí)并給出相應(yīng)的函數(shù)參數(shù)提示。查MSDN發(fā)現(xiàn)需要#include,雖然form1.cpp里有,但也只有在form1.h里再include一遍了,結(jié)果就是命名空間里的有些東西出現(xiàn)錯(cuò)誤無法使用了,雖然麻煩些,但還是把函數(shù)寫在.cpp文件里吧!然后,有些串口設(shè)備會(huì)自帶一些實(shí)現(xiàn)本身功能的.dll,不用說了,又不能用,尤其是用C/C++寫的,尤其是底層的數(shù)據(jù)格式和數(shù)組,VB的模塊兼容性好些,可以用VB.NET二次封裝一下。對(duì)串口本身的操作并不復(fù)雜,但問題是連接迎硬件后需要花費(fèi)大量的心思去面對(duì)保護(hù)的問題,硬件不會(huì)完全按照說明書那樣去工作的!