上位機軟件開(kāi)發(fā)實(shí)例(上位機軟件開(kāi)發(fā)發(fā)展前景)
本篇文章給大家談?wù)勆衔粰C軟件開(kāi)發(fā)實(shí)例,以及上位機軟件開(kāi)發(fā)發(fā)展前景對應的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、如何用c語(yǔ)言開(kāi)發(fā)自己的上位機軟件
- 2、只會(huì )C語(yǔ)言能不能開(kāi)發(fā)上位機軟件?
- 3、vb串口通信程序實(shí)例
- 4、你好,我想用vc++6.0開(kāi)發(fā)一個(gè)usb的上位機軟件,usb芯片用的是ft245,麻煩前
- 5、利用電腦做上位機開(kāi)發(fā)一個(gè)軟件,用單片機做下位機。在上位機上點(diǎn)擊軟件上的按鈕能使單片機輸出一路I/O口
如何用c語(yǔ)言開(kāi)發(fā)自己的上位機軟件
一般開(kāi)發(fā)上位機軟件都是帶圖形界面的。C也能做出圖形界面的軟件,但是開(kāi)發(fā)周期太長(cháng)也不實(shí)用。所以最好還是需要會(huì )一些其他語(yǔ)言,例如C++,C#,Java這些做圖形界面開(kāi)發(fā)周期短的語(yǔ)言。既然會(huì )C,那么學(xué)習其他語(yǔ)言也只是一個(gè)熟悉語(yǔ)法的過(guò)程。所以很快就能上手,因為語(yǔ)言都是相通的嘛??梢蚤_(kāi)闊自己的視野去學(xué)習一下新的語(yǔ)言。不是說(shuō)只會(huì )C有什么弊端,只是想說(shuō)會(huì )的多才會(huì )知道語(yǔ)言之間的優(yōu)劣。
只會(huì )C語(yǔ)言能不能開(kāi)發(fā)上位機軟件?
能。
現在C能做一些軟件的底層,也就是功能級的開(kāi)發(fā),當然也確實(shí)的是,現在大部分連功能層都用C++寫(xiě)了...上位機軟件確定了功能用C寫(xiě),那你就可以上,上位機的管理你寫(xiě)不了,管理都給客戶(hù)端或者web,碰到那些玩意,C就往后靠吧。
vb串口通信程序實(shí)例
我也是自己摸索開(kāi)發(fā)出來(lái)的每一款VBtoCOM通訊,有具體的思路如下:
給你推薦一個(gè)工具“com串口測試工具 ComTone V1.0 中文綠色版”
1、打開(kāi)你的噪音計的測試軟件,調整好串口號、通訊頻率等等,我用溫度計舉例說(shuō)明。
開(kāi)始查詢(xún)后有返回數值,這個(gè)Receive:就是返回的數值000304012200004b05,
打開(kāi)串口監視精靈,監視軟件的com口事件:
這里面的Write是測試軟件發(fā)出的查詢(xún)指令,read是設備返回的數據指令
Private?Sub?Command1_Click()?'發(fā)送指令
If?Not?MSComm1.PortOpen?Then
??MSComm1.CommPort?=?7?'串口為7
??MSComm1.Settings?=?"9600,n,8,1"
??MSComm1.InBufferCount?=?0?'清除接收緩沖區
??MSComm1.OutBufferCount?=?0?'清除發(fā)送緩沖區
??MSComm1.InputMode?=?comInputModeBinary?'二進(jìn)制接收
??MSComm1.InputLen?=?0?'讀取接收緩沖區的所有字符
??MSComm1.PortOpen?=?True??'打開(kāi)串口
??MSComm1.RTSEnable?=?False?'置為發(fā)送狀態(tài)
End?If
Dim?pu()?As?Byte
Dim?strdata??As?String
Dim?crc_js()?As?Byte
ReDim?pu(7)??'這個(gè)數組是8位的查詢(xún)指令
pu(0)?=?"H00"?'溫度計地址
pu(1)?=?"H03"?'查詢(xún)指令
pu(2)?=?"H00"?'2、3為溫度計地址
pu(3)?=?"H00"?'2、3為溫度計地址
pu(4)?=?"H00"?'4、5為讀取寄存器長(cháng)度
pu(5)?=?"H02"?'4、5為讀取寄存器長(cháng)度
pu(6)?=?"HC5"?'6、7為CRC校驗碼?因為我們不知道設備的CRC校驗規則所以用測試軟件產(chǎn)生的校驗碼
pu(7)?=?"HDA"?'6、7為CRC校驗碼
MSComm1.Output?=?pu
'不做任何事情,僅僅允許其它應用程序處理它們的事件。
DoEvents
MSComm1.InBufferCount?=?0?'清除接收緩沖區
MSComm1.RThreshold?=?9?'所要接收的數據長(cháng)度,我們通過(guò)COM檢測精靈看到了回傳數據一共是9字節
MSComm1.RTSEnable?=?True?'轉為接收狀態(tài)
End?Sub
Private?Sub?Command2_Click()
Timer1.Enabled?=?False
End?Sub
Private?Sub?Form_Unload(Cancel?As?Integer)
????If?MSComm1.PortOpen?Then
????????MSComm1.PortOpen?=?False??'關(guān)閉串口
????End?If
????Timer1.Enabled?=?False
End?Sub
Private?Sub?MSComm1_OnComm()?'COM事件
????Dim?PA()?As?Byte
????Dim?PB?As?String
Select?Case?MSComm1.CommEvent
?Case?comEvReceive
????????????MSComm1.InputLen?=?0?'讀取接收緩沖區的所有字符
????????????PB?=?MSComm1.Input
????????????PA()?=?PB
????????????For?i?=?0?To?UBound(PA())
????????????????'Print?"PA("??i??")";?PA(i)
????????????????If?Len(Hex(PA(i)))?=?1?Then
????????????????????strdata?=?strdata??"0"??Hex(PA(i))
????????????????Else
????????????????????strdata?=?strdata??Hex(PA(i))
????????????????End?If
????????????Next
????????????'回傳的數據串:000304012600000AC4,這9字節根據通訊協(xié)議我們進(jìn)行拆分
????????????'00為協(xié)議內回傳機號,03為讀命令,04為返回的數據長(cháng)度?0126?為我要的溫度數據為十六進(jìn)制表達,下面我進(jìn)行數據處理
????????????wd?=?CLng("H"??Left(Right(strdata,?12),?4))?/?10??"℃"???'根據通訊協(xié)議換算成溫度
????????????Text1?=?Text1??vbCrLf??strdata??"??"??wd
????????????strdata?=?""
???MSComm1.PortOpen?=?False??'關(guān)閉串口
?End?Select
End?Sub
Private?Sub?Timer1_Timer()
Call?Command1_Click
End?Sub
這是我的測試結果。
下面是通訊協(xié)議
這個(gè)是我的軟件用檢測精靈檢測的結果
你好,我想用vc++6.0開(kāi)發(fā)一個(gè)usb的上位機軟件,usb芯片用的是ft245,麻煩前
首先要熟悉VC++,基于VC++的MFC開(kāi)發(fā)比較方便,加載USB驅動(dòng),采用VC++編寫(xiě)類(lèi)似于串口通訊的USB數據收發(fā)程序。以前用過(guò)C語(yǔ)言,進(jìn)入VC++可能需要點(diǎn)時(shí)間,譬如還要熟悉C++和MFC.
利用電腦做上位機開(kāi)發(fā)一個(gè)軟件,用單片機做下位機。在上位機上點(diǎn)擊軟件上的按鈕能使單片機輸出一路I/O口
主要涉及到單片機基礎知識,重點(diǎn)是串口通信,上位機可以考慮vc和.net,這兩種都可以。.net使用c#語(yǔ)言,感覺(jué)比較好上手,我也可以給你點(diǎn)視頻教程,一學(xué)就會(huì )。
關(guān)于上位機軟件開(kāi)發(fā)實(shí)例和上位機軟件開(kāi)發(fā)發(fā)展前景的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。