wxg1221
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 15 個(gè)
工控威望: 84 點(diǎn)
下載積分: 466 分
在線時(shí)間: 20(小時(shí))
注冊(cè)時(shí)間: 2018-08-08
最后登錄: 2024-06-12
查看wxg1221的 主題 / 回貼
樓主  發(fā)表于: 2020-03-13 15:29
解碼槍解出來(lái)的二維碼用串口傳輸  怎么把這個(gè)串口的數(shù)據(jù)直接在EXCEL表格里面顯示  掃一個(gè)碼EXCEL里面存一個(gè)
wxg1221
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 15 個(gè)
工控威望: 84 點(diǎn)
下載積分: 466 分
在線時(shí)間: 20(小時(shí))
注冊(cè)時(shí)間: 2018-08-08
最后登錄: 2024-06-12
查看wxg1221的 主題 / 回貼
1樓  發(fā)表于: 2020-03-13 15:34
圖片:
這是解出來(lái)的碼
菜鳥入行
級(jí)別: 論壇先鋒

精華主題: 0
發(fā)帖數(shù)量: 1379 個(gè)
工控威望: 1557 點(diǎn)
下載積分: 3686 分
在線時(shí)間: 177(小時(shí))
注冊(cè)時(shí)間: 2017-09-01
最后登錄: 2024-06-11
查看菜鳥入行的 主題 / 回貼
2樓  發(fā)表于: 2020-03-15 18:45
正常來(lái)說(shuō),需要使用VB  VC 等語(yǔ)言。

但是,我個(gè)人比較喜歡BAT的一個(gè)功能:
你只需要寫這一行代碼:
echo %time%>>c:\1.xls
復(fù)制到一個(gè)記事本文件,然后另存為  time.bat
每雙擊一次,就會(huì)在C盤生成一個(gè)叫1的表格文件,里面有每次雙擊的時(shí)間。
假如有辦法讓這個(gè)BAT獲取到你串口獲取的內(nèi)容,就可以達(dá)到你要的要求了。

我在百度搜索到,BAT可以直接向串口發(fā)送數(shù)據(jù),理論上接收也可以,只是寫腳本可能麻煩些。
參考:
https://zhidao.baidu.com/question/531586037.html
https://www.cnblogs.com/runliuv/p/9817126.html
[ 此帖被菜鳥入行在2020-03-15 19:00重新編輯 ]
打個(gè)醬油,懂的不多
水平有限,能幫則幫
互相幫助,共同進(jìn)步
908914819
加壘電氣
級(jí)別: 家園?

精華主題: 1 篇
發(fā)帖數(shù)量: 424 個(gè)
工控威望: 530 點(diǎn)
下載積分: 441 分
在線時(shí)間: 1418(小時(shí))
注冊(cè)時(shí)間: 2008-07-06
最后登錄: 2024-12-21
查看908914819的 主題 / 回貼
3樓  發(fā)表于: 2020-03-16 14:56
如何將串口接收到的數(shù)據(jù)保存到EXCEL文檔

1.啟動(dòng)excel從:工具-->宏-->Visual Basic 編輯器,打開excel VBA.

2.在ThisWorkbook上右單擊鼠標(biāo)選擇插入--用戶窗體

3.單擊一下插入的窗體,單擊菜單上的--工具--附加控件--選擇Microsoft Communications Control, version 6.0

4.在窗體上添加mscomm1,添加commandButton1

5.單串口機(jī)子,短接rs232的2腳和3腳,雙串口機(jī)子用232線連接兩個(gè)串口,注意2、3線交叉,我這里以單串口短接舉例。

6.復(fù)制以下代碼到你的窗體里:

VB code

'VBA代碼
Private Sub CommandButton1_Click()
MSComm1.Output = "BEG1END"
End Sub

Private Sub MSComm1_OnComm()
Dim t1 As Long, com_String As String
Static i As Integer
t1 = Timer

Select Case MSComm1.CommEvent
Case comEvReceive '收到 RThreshold定義的字符數(shù)1字節(jié)
MSComm1.RThreshold = 0
Do
DoEvents
Loop While Timer - t1 < 0.1 '延時(shí)時(shí)間自己調(diào)整
com_String = MSComm1.Input
MSComm1.RThreshold = 1
i = i + 1: If i > 255 Then i = 1
Application.Cells(3, i).Value = com_String
End Select
'ActiveWorkbook.SaveAs Filename:="C:\d1.xls"
End Sub


Private Sub iniMscomm()
'On Error Resume Next
'=====-----初始化通信串口-----=====

MSComm1.CommPort = 1 '使用 COM1
MSComm1.Settings = "9600,N,8,1" '9600 波特,無(wú)奇偶校驗(yàn),8 位數(shù)據(jù),一個(gè)停止位
MSComm1.PortOpen = True '打開端口

MSComm1.RThreshold = 1 '緩沖區(qū)有1個(gè)字節(jié)就產(chǎn)生OnComm事件
MSComm1.InputLen = 0 '為 0 時(shí),使用 Input 將使 MSComm 控件讀取接收緩沖區(qū)中全部的內(nèi)容。

MSComm1.InputMode = comInputModeText 'Input以二進(jìn)制形式取回用comInputModeBinary,以文本形式取回是(缺省項(xiàng))
MSComm1.RTSEnable = True
MSComm1.InBufferCount = 0 '清空緩沖區(qū)

End Sub

Private Sub UserForm_Initialize()
iniMscomm
End Sub


7.雙擊thisWorkBook,復(fù)制以下代碼到窗體里:

VB code

'VBA代碼
Private Sub Workbook_Open()
UserForm1.Show 0
'UserForm1.Hide

End Sub
8.保存文件并關(guān)閉excel,然后再打開你的文件,然后單擊你窗體上的按鈕看看。
9.這個(gè)程序是我為你特意做的,已經(jīng)做過(guò)測(cè)試,sys2003 office2003。
10.如果excel中有數(shù)據(jù)輸入,再去測(cè)試你的設(shè)置,注意com口號(hào)與波特率的設(shè)置。
908914819
加壘電氣
級(jí)別: 家園?

精華主題: 1 篇
發(fā)帖數(shù)量: 424 個(gè)
工控威望: 530 點(diǎn)
下載積分: 441 分
在線時(shí)間: 1418(小時(shí))
注冊(cè)時(shí)間: 2008-07-06
最后登錄: 2024-12-21
查看908914819的 主題 / 回貼
4樓  發(fā)表于: 2020-03-16 14:58
以上是百度的