teraterm 执行sql命令_一款轻量级终端工具TeraTerm的脚本介绍(一)

TeraTerm是功能强大且支持脚本的类似超级终端软件,适合调试环境。其脚本为ttl文件,可通过ttpmacro.exe执行。本文详细介绍首个ttl宏,包括连接、发送、等待、弹窗、关闭等命令,还提及配置默认波特率,助读者了解TeraTerm脚本运作。

TeraTerm 是一款类似超级终端的软件,但功能更为强大,最大的特色是支持脚本。非常丰富的脚本命令扩展使TeraTerm能做许多事情,可以大大简化了工作量,非常适合频繁使用串口或者Telnet等方式调试的环境。配合批处理或者VBA做一些简单界面,往往能迅速开发出完整的功能。在某些情况下比使用程序代码更为便捷,也使不太懂编程的人不必囿于他人进度。总的来说,TeraTerm可以完成终端交互,字符串的处理(从连接,替换到支持正则表达式),读写文本,简单计算,调用外部程序,判断选择循环暂停等逻辑更是一应俱全。

TeraTerm支持的脚本,是一个后缀为ttl的文本文件,可以直接使用记事本打开编辑。TeraTerm安装文件夹内有一个名为ttpmacro.exe的可执行文件,是TeraTerm的脚本解释器,双击执行后可以直接弹出对话框,获取ttl文件即可执行。也可以打开TeraTerm,从主菜单内选择Control –>Macro执行。

以下分5个章节来详细讲述TeraTerm宏的使用,最后1个章节会讲述一些和批处理和VBA的配合。

第一个ttl宏

基础命令

逻辑

字符串的操作

批处理和VBA的配合

在熟悉了这些内容之后,还需要深入一点了解ttl,那么可以参阅安装文件夹下的teraterm.chm帮助文件,所有的内容都可以从那上面获取。在以后的宏编写过程中,这个帮助文件也可以作为非常有用的参考文档。

第一个ttl宏

打开记事本,输入以下文字,保存后将文件后缀改成ttl,并将文件名改成firstTtl。

connect "/c=1 /baud=38400"

sendln ""

wait "pSH+>"

messagebox "Hello World! I caught the string!" "First ttl"

closett

如果安装了TeraTerm,则图标会变成默认的TeraTerm宏样式。双击这个文件执行,在我的电脑上会顺利弹出一个如下图所示的对话框,点击“确定”后整个程序关闭。

这个只有5行的脚本其实执行了很多事情:打开串口,配置串口,发送字符,等待出现想要的字符,弹出对话框,断开串口关闭程序窗口等。这5行看起来也比较简单,但是作为第一个脚本,还是逐行来进行以下分析。

connect "/c=1 /baud=38400"

开始的connect是关键字,是用来进行连接的。Connect后面是它接受的参数,用一对双引号包起来,当然你也可以使用一对单引号。记住,在TeraTerm脚本里面,单引号和双引号是没有区别的。/c=1的意思很简单,表示COM1,如果要连接的是COM30,那写成/c=30就行。空一格之后还有一个/baud=38400的参数,看得出来是指定波特率的。如果连接对象的波特率是9600,那么就写成/baud=9600。

很多时候,连接对象的波特率是固定的,每次都要写波特率显得有些麻烦,那么可以在TeraTerm的配置文件里写入默认波特率,这样每次写脚本时只要写上connect “/c=1”就可以,波特率会自动使用默认值。配置文件是安装文件夹下的TERATERM.INI。可以打开查找到BaudRate=9600这一行,将后面的数值改成自己需要的保存即可。

sendln ""

这一句的意思非常容易明白,就是发送。精确一点,是模拟了发送之后回车换行的过程。发送的内容用双引号或者单引号包起来。这句发送的内容为空,表示只进行了一个回车换行。同理,你一定能猜到,存在一个send的命令,作用是发送内容,但是后面不跟回车换行。没错,而且可以提前告诉你:send #13本质上等同于sendln ""。

wait "pSH+>"

这一句的意思也非常浅显,等待。命令是wait,后面的参数是等待的字符串pSH+>。Wait后面可以带很多参数,最多可以达到10个,中间用空格隔开。这10个参数之间的关系是或,比如wait “hello”“ciao”“bonjour”,只要发现打印字符里出现任意一个满足,则认为等待到了。关于等待的不同用法,有很多内容,下面会有专门章节讲述。

messagebox "Hello World! I caught the string!" "First ttl"

这一句的意思是弹出一个对话框,显示一串字符,并且设定了对话框的标题为"First ttl"。在使用时,两个参数都不能省略。

Closett

这一句的意思是断开当前窗口的连接,然后关闭程序。如果不加这一句,那么宏执行完后,窗口和连接就会保持在最后执行的状态下。

这个脚本是一个典型的串口操作过程,连接,发送,等待,显示,断开。熟悉了这个脚本以后,应该有一个整体概念了,知道TeraTerm脚本如何运作。下一章开始详细介绍常用的命令。

<think>好的,我现在要帮用户找个能解析单片机UART数据并保存到文件的工具。首先,我需要理解用户的具体需求。用户提到的是通过UART接收数据,解析后保存到文件,可能需要实时显示或后续分析。根据提供的引用资料,特别是引用[2]和引用[3],用户可能还需要波形显示和数据保存功能。 首先,我应该考虑现有的串口工具。常用的工具有Putty、Tera Term、RealTerm等,这些工具都支持串口数据接收和保存到文件。比如,RealTerm可以直接保存原始数据为二进制或文本文件,但可能需要用户手动处理解析格式。 接下来,用户可能需要更专业的工具,比如串口示波器。引用[2]提到个从头搭建的串口示波器教程,说明用户可能需要同时显示波形和保存数据。这时候,推荐使用如SerialPlot、QtiPlot或者LabVIEW,这些工具支持实时绘图和数据记录。特别是SerialPlot,开源且轻量,适合单片机应用。 另外,用户可能需要自定义解析,因为不同的单片机可能有不同的数据格式。这时候,Python脚本可能更灵活。使用PySerial库读取串口数据,然后按照协议解析,比如处理二进制数据中的结构体,拆分数据包,校验等。引用[3]提到数据发送是通过TXR寄存器,说明数据可能是按特定结构传输的,可能需要解析帧头、长度、校验和等信息。Python脚本可以灵活处理这些需求,并将数据保存为CSV或TXT文件。 同时,引用[1]提到命令解析的移植性,可能用户希望工具能适应不同单片机,所以推荐的工具最好具有可配置性。比如,自己编写Python脚本可以根据不同协议调整解析逻辑,而无需关心底层硬件细节。 最后,如果用户需要更高级的功能,比如数据分析或自动化处理,可以考虑结合MATLAB或使用数据处理软件如Excel或Python的Pandas库进后续处理。例如,保存后的数据可以用Pandas读取并分析,生成报告或图表。 总结下来,用户可能需要分步骤选择工具:基础串口工具用于简单保存,串口示波器用于实时显示,自定义脚本处理复杂解析,高级工具用于数据分析。需要根据具体的数据格式和需求来推荐合适的解决方案,并确保工具的可移植性和灵活性。</think>根据您的需求,这里推荐几种解决方案及操作步骤: ### 、基础串口工具+手动解析 1. **使用Tera Term/RealTerm接收原始数据** - 安装工具后设置波特率(如115200)、数据位(8)、停止位(1) - 开启`Logging`功能保存原始HEX或ASCII数据到文件 - 示例数据格式:`$A1,23.5,45.6,78.9*CRC\r\n`[^2] 2. **Python后处理脚本** ```python import serial ser = serial.Serial('COM3', 115200, timeout=1) with open('data.txt','w') as f: while True: line = ser.readline().decode().strip() # 假设为ASCII数据 if line.startswith("$A1"): values = line.split(',')[1:-1] # 提取有效数据 f.write(','.join(values)+'\n') ``` ### 二、专业串口示波器工具 推荐使用**CoolTerm**或**SerialPlot**: 1. **CoolTerm特性** - 支持二进制/ASCII混合模式接收 - 可配置自动保存间隔(如每10MB分割文件) - 提供数据时间戳记录功能[^2] 2. **SerialPlot高级配置** ```json // 协议配置文件protocol.json { "frame_header": [0xAA, 0x55], "data_format": [ {"name":"temp", "type":"float32", "byte_order":"little"}, {"name":"voltage", "type":"uint16"} ], "checksum": "crc16" } ``` ### 三、自定义开发方案 1. **基于PySerial的增强工具** - 安装依赖:`pip install pyserial matplotlib` - 实时绘图+数据存储代码框架: ```python import serial from collections import deque import matplotlib.pyplot as plt ser = serial.Serial('COM3', 115200) data_buffer = deque(maxlen=1000) while True: raw = ser.read(ser.in_waiting or 1) if b'\xAA\x55' in raw: # 检测帧头 pkt = parse_packet(raw) # 自定义解析函数 if validate_checksum(pkt): data_buffer.append(pkt['payload']) save_to_sqlite(pkt) # 存储到数据库 # 定时刷新绘图 plt.plot([d.timestamp for d in data_buffer], [d.value for d in data_buffer]) plt.pause(0.01) ``` ### 四、工业级方案 对于需要高可靠性的场景: 1. **使用LabVIEW+NI-VISA** - 配置DMA式数据采集 - 支持TCP/UDP转发数据 - 提供SQL数据库直接写入接口 2. **Qt定制开发** - 通过QSerialPort实现跨平台支持 - 集成Google Protocol Buffers解析 - 示例协议栈: ``` [同步头0xAA55][2字节长度][n字节数据][2字节CRC] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值