wxg1221
级别: 正式会员
精华主题: 0
发帖数量: 15 个
工控威望: 84 点
下载积分: 466 分
在线时间: 20(小时)
注册时间: 2018-08-08
最后登录: 2024-04-25
查看wxg1221的 主题 / 回贴
楼主  发表于: 2020-03-13 15:29
解码枪解出来的二维码用串口传输  怎么把这个串口的数据直接在EXCEL表格里面显示  扫一个码EXCEL里面存一个
wxg1221
级别: 正式会员
精华主题: 0
发帖数量: 15 个
工控威望: 84 点
下载积分: 466 分
在线时间: 20(小时)
注册时间: 2018-08-08
最后登录: 2024-04-25
查看wxg1221的 主题 / 回贴
1楼  发表于: 2020-03-13 15:34
图片:
这是解出来的码
菜鸟入行
级别: 论坛先锋

精华主题: 0
发帖数量: 1379 个
工控威望: 1555 点
下载积分: 3678 分
在线时间: 176(小时)
注册时间: 2017-09-01
最后登录: 2024-05-07
查看菜鸟入行的 主题 / 回贴
2楼  发表于: 2020-03-15 18:45
正常来说,需要使用VB  VC 等语言。

但是,我个人比较喜欢BAT的一个功能:
你只需要写这一行代码:
echo %time%>>c:\1.xls
复制到一个记事本文件,然后另存为  time.bat
每双击一次,就会在C盘生成一个叫1的表格文件,里面有每次双击的时间。
假如有办法让这个BAT获取到你串口获取的内容,就可以达到你要的要求了。

我在百度搜索到,BAT可以直接向串口发送数据,理论上接收也可以,只是写脚本可能麻烦些。
参考:
https://zhidao.baidu.com/question/531586037.html
https://www.cnblogs.com/runliuv/p/9817126.html
[ 此帖被菜鸟入行在2020-03-15 19:00重新编辑 ]
打个酱油,懂的不多
水平有限,能帮则帮
互相帮助,共同进步
908914819
加垒电气
级别: 家园常客

精华主题: 1 篇
发帖数量: 421 个
工控威望: 527 点
下载积分: 435 分
在线时间: 1409(小时)
注册时间: 2008-07-06
最后登录: 2024-05-08
查看908914819的 主题 / 回贴
3楼  发表于: 2020-03-16 14:56
如何将串口接收到的数据保存到EXCEL文档

1.启动excel从:工具-->宏-->Visual Basic 编辑器,打开excel VBA.

2.在ThisWorkbook上右单击鼠标选择插入--用户窗体

3.单击一下插入的窗体,单击菜单上的--工具--附加控件--选择Microsoft Communications Control, version 6.0

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

5.单串口机子,短接rs232的2脚和3脚,双串口机子用232线连接两个串口,注意2、3线交叉,我这里以单串口短接举例。

6.复制以下代码到你的窗体里:

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定义的字符数1字节
MSComm1.RThreshold = 0
Do
DoEvents
Loop While Timer - t1 < 0.1 '延时时间自己调整
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 波特,无奇偶校验,8 位数据,一个停止位
MSComm1.PortOpen = True '打开端口

MSComm1.RThreshold = 1 '缓冲区有1个字节就产生OnComm事件
MSComm1.InputLen = 0 '为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。

MSComm1.InputMode = comInputModeText 'Input以二进制形式取回用comInputModeBinary,以文本形式取回是(缺省项)
MSComm1.RTSEnable = True
MSComm1.InBufferCount = 0 '清空缓冲区

End Sub

Private Sub UserForm_Initialize()
iniMscomm
End Sub


7.双击thisWorkBook,复制以下代码到窗体里:

VB code

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

End Sub
8.保存文件并关闭excel,然后再打开你的文件,然后单击你窗体上的按钮看看。
9.这个程序是我为你特意做的,已经做过测试,sys2003 office2003。
10.如果excel中有数据输入,再去测试你的设置,注意com口号与波特率的设置。
908914819
加垒电气
级别: 家园常客

精华主题: 1 篇
发帖数量: 421 个
工控威望: 527 点
下载积分: 435 分
在线时间: 1409(小时)
注册时间: 2008-07-06
最后登录: 2024-05-08
查看908914819的 主题 / 回贴
4楼  发表于: 2020-03-16 14:58
以上是百度的