🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] 串口调试的脚本可以使用shell脚本,也可以使用python脚本。 > # Python串口脚本 ``` #!/usr/bin/env python3 # -- coding:utf-8 -- #------------------------------------------------------- # FileName : t.py # Author :hpy # Email :yuan_hp@qq.com # Date :2020年10月26日 # Description : #------------------------------------------------------- import serial import time try: timex=5 #超时设置,None:永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒) ser=serial.Serial("/dev/ttyS39",9600,timeout=timex) #打开串口 #ser.open() #写数据 result=ser.write("12345\n".encode("gbk")) #通过串口发送数据 data=ser.readline() #读取串口数据 直至遇到 \n,否则阻塞 data = str(data)[2:-3] #强制转换读取的数据为字符串并截取一部分 rd=int(data) #转为int型 y = rd + 1 #数据处理 print(y) #打印处理后的数据 ser.close() #关闭串口 except Exception as e : print("异常") ``` > # shell脚本 ``` #!/usr/bin/env bash #------------------------------------------------------- # FileName : mtty.sh # Author :hpy # Date :2020年08月09日 # Description :基于linux终端的串口工具 # :连接树莓派,licheepi等 #------------------------------------------------------- #++++++++++++++++ 串口参数设置+++++++++++++++++++++ #目标串口设置 /dev/ttyUSB* fdtty=/dev/ttyUSB0 #波特率设置 baud=115200 #+++++++++++++++++++++++++++++++++++++++++++++++++++ tp="/tmp/$(date +%N).txt" exUsb(){ if [ ! -c $fdtty ];then echo "不存在目标串口($fdtty)!退出脚本" exit 0 fi } #自动检测目标usb 未完成 checkUsb(){ t1=$(ls /dev/ttyUSB*) if [[ $? -gt 0 ]];then read -p "请插入串口后,是否继续检测串口y/n?" chechin if [ "$chechin" = "y" ] || [ "$chechin" = "yes" ] then fdtty=$(ls /dev/ttyUSB*) fi else t2=$(ls /dev/ttyUSB*) fi } #键盘输入 getData(){ while((1)) do exUsb read readd echo -e -n "$readd\n" > $fdtty done } #串口有数据接收时就返回 dis(){ while ((1)) do exUsb cat $fdtty | tail -n +2 >> $tp #cat $fdtty >> /tmp/usbget.txt if [[ -s $tp ]];then cat $tp cat /dev/null > $tp #显示过的就在文件中清除 fi done } info(){ echo "欢迎使用linux终端上的嵌入式串口工具!" echo "使用 <Ctrl-c> 退出" echo "" } main(){ info exUsb stty -F $fdtty -echo raw speed $baud min 0 time 2 &> /dev/null #cat /dev/null > /tmp/usbget.txt echo -e -n "\n" >$fdtty #启动时发送,以获取反馈显示 dis & #显示线程 getData #键盘输入线程 exit 0 } main ```