精华内容
下载资源
问答
  • 2021-12-08 16:34:27

    最近在进行大彩串口屏的开发,需要通过串口的0x13指令,来读取一包数据包,并分析其中的数据,将其绘制成曲线。

    大彩串口屏自带的LUA脚本编程有如下的限制,在朋友们进行开发选型之前,一定要进行仔细的参考:

            1.MODBUS通讯协议和内部自带的指令助手只能选择一种

            2.自定义串口指令和串口屏自带的MODBUS通讯,只用选择一种

            3.不支持MODBUS读取到的数据,添加到曲线控件上

            迪文、JFC的串口屏我都有了解过,TFT软件好像还不如大彩的。。。

    扯远了,下面来谈一谈开发过程收获的经验和遇到的坑。

    1.自定义串口指令,发送、处理的运行速率极慢(已解决)

    大彩的自定义串口指令教程里面,会让你把串口超时设置为uart_set_timeout(1000,300)

    我靠,完全不能这么慢好么!一开始开发的时候就是按照教程的设置,结果串口一收到数据包就直接卡死,刚开始还以为是MCU处理不过来,后来减少了代码量才发现不是这个的原因。。。

    现在我用过的超时设置为 uart_set_timeout(50,10),超级丝滑有木有

    2.历史曲线的LUA编程实现

    自定义指令的发送

    将你想发送的数据包储存在一个Table里面,然后调用这个函数就可以啦

    uart_send_data(HistoryTable)  	

    function on_uart_recv_data(packet)
    ---------------------------------------------------------------------------------13指令
    		if packet[1]==0x13
    		
    		 then
    
    			for i=0,120 do
     			channel1[i]=        (256*packet[10+PackageSize*i*2+1]+packet[10+PackageSize*i*2])/65535*100 	
    			end 	
    			 	
    		end

    然后是数据包处理,MODBUS协议,根据packet[1]的值判断指令,然后执行对应的函数

    这里我是一次读取了120个点,然后储存在一个表里

    然后是曲线的绘制

    function on_draw(screen)
    
    
    if screen==7 
    then
    set_pen_color(0x0000)
    for i=0,118 do
    draw_line(i*(285/120),200-channel1[i],(i+1)*(285/120),200-channel1[i+1],1) 	end
    --在(0,0,285,200)的范围绘制120点曲线
    
    end

    其实还实现了一个竖向的光标,可以显示120个点当前选择的点的一些数据,就不在这里献丑了。

    更多相关内容
  • 基本型串口HMI指令表.pdf
  • HC-05嵌入式蓝牙串口通讯模块的AT指令
  • 串口简介及操作指令

    千次阅读 2020-05-06 22:09:38
    1.1 串口简介 1.1.1 串口电平 串口是一个泛称,UART、TTL、RS232、RS485、RS422都统称为串口。 芯片内部的串口收发逻辑电路一般称为UART接口,即通用异步收发器(Universal Asynchronous Receiver/Transmitter);芯片...

    1.1 串口简介

    1.1.1 串口电平

    串口是一个泛称,UART、TTL、RS232、RS485、RS422都统称为串口。

    芯片内部的串口收发逻辑电路一般称为UART接口,即通用异步收发器(Universal Asynchronous Receiver/Transmitter);芯片外部的串口一般为遵循TTL电平的TTL串口;RS232、RS485、RS485则通常作为设备的外设串口使用。

    TTL电平

    TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号应用广泛,是因为其数据表示采用二进制规定,+5V等价于逻辑”1”,0V等价于逻辑”0”。
    数字电路中,由TTL电子元器件组成电路的电平是个电压范围,规定:
    输出高电平>=2.4V,输出低电平<=0.4V;
    输入高电平>=2.0V,输入低电平<=0.8V。

    RS232电平

    RS232电平是串口的一个标准。
    在TXD和RXD数据线上:
      (1)逻辑1为-3~-15V的电压
      (2)逻辑0为3~15V的电压

    1.1.2 RS232接口在这里插入图片描述

    1.2 Linux串口指令

    串口为独站式设备,Linux下串口可重复打开,但数据会被最新打开的程序劫走。

    (1) 使用cat读取数据

    cat /dev/ttymxc0
    

    (2)使用microcom查看串口数据

    microcom -s 115200 /dev/ttyS0
    

    (3)使用echo向串口发送数据

    echo "hello" > /dev/ttymxc0
    

    (4)使用microcom向串口发送数据

    microcom -s 115200 /dev/ttyS0 < /root/123.txt
    

    (5)使用stty命令获取当前串口配置

    stty -F /dev/ttymxc0
    

    (6)使用stty命令更改串口属性

    stty -F /dev/ttymxc0 ispeed 115200 ospeed 115200 cs8
    
    展开全文
  • 常用的串口调试指令

    千次阅读 2019-08-10 08:09:21
    常用的串口调试指令 1.筛选指定日志信息 logcat | grep xxx 2.抓取log信息并保存在指定文件 logcat -f xxx(文件名) logcat -c;logcat -s “TAG” //打印指定信息 3.关闭kernel打印信息 记得用切换用户权限:su 切换...

    常用的串口调试指令

    1.筛选指定日志信息
    logcat | grep xxx

    2.抓取log信息并保存在指定文件
    logcat -f xxx(文件名)
    logcat -c;logcat -s “TAG” //打印指定信息

    3.关闭kernel打印信息
    记得用切换用户权限:su
    切换回原来的用户:exit
    echo 0>/proc/sys/kernel/printk

    4.am命令 ActivityManager
    (1)启动Activity
    am start -a action
    am start -n 包名、类名

    (2)启动Service
    am startservice -a 定义action
    am start -n 包名、类名

    (3).发送广播
    am broadcast -a 定义action

    (4).关闭所有后台进程
    am kill -all

    (5).强制关掉所有的应用
    am force-stop pkgname

    (6).查看Activity栈
    am stack list

    5.pm命令 PackManager
    (1)列出系统所有应用
    pm list package

    (2)列出系统级应用
    pm list package -s

    (3)列出第三方应用
    pm list package -3

    (4)安装指定路径下的apk安装包
    pm install /mnt/sdcard/xxx.apk
    无覆盖:pm install mnt/usb/xxx.apk
    有覆盖:pm install -r mnt/usb/xxx.apk

    (5)卸载指定应用
    pm uninstall pkgname

    (6)清除指定应用的缓存数据
    pm clear pkgname

    6.input命令 模拟遥控器输入
    input text xxxx

    7.截屏和录屏命令
    screencap:截屏
    screenrecord:录屏

    8.查看系统分区情况
    df

    9.查看当前系统的USB挂载情况
    lsusb

    10.监控某一应用进程
    top | grep packagename

    11.Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息
    (1)dumpsys wifi:查看wifi连接信息
    (2)dumpsys meminfo:查看物理内存使用情况
    (3) dumpsys activity | grep "mFocusedActivity”:查看顶层活动

    展开全文
  • // 串口指令处理器 `timescale 1ns/10ps module cmd_pro( clk, res, din_pro, en_din_pro, dout_pro, en_dout_pro, rdy ); input clk; input res; input...

    在这里插入图片描述
    UART_TXer 输出给上位机

    在这里插入图片描述

    在这里插入图片描述


    项目场景:

    
    // 2022-1-23 verilog学习
    // 串口指令处理器
    
    `timescale 1ns/10ps
    module cmd_pro(
    					clk,
    					res,
    					din_pro,
    					en_din_pro,
    					dout_pro,
    					en_dout_pro,
    					rdy
    					);
    							
    input				clk;	
    input				res;	
    input[7:0]			din_pro;			// 指令和数据输入端口
    input				en_din_pro;	  // 指令输入使能
    output[7:0]			dout_pro;	    // 指令和数据输出端口
    output				en_dout_pro;	// 指令输出使能
    output				rdy;					// 串口发送模块空闲标志,0表示空闲
    
    parameter			add_ab = 8'h0a;	 //a+b			
    parameter			sub_ab = 8'h0b;	 //a-b	
    parameter			and_ab = 8'h0c;	 //a&b	
    parameter			or_ab = 8'h0d;	 //a|b				
    						
    reg[2:0]     		state;   // 主状态机寄存器
    reg[7:0]			cmd_reg, A_reg, B_reg;  // 存放指令,A和B
    reg[7:0]			dout_pro;
    reg					en_dout_pro;
    
    always@(posedge clk or negedge res)
    if(~res)begin  // reg型变量清零
    	state<=0;cmd_reg<=0; A_reg<=0; B_reg<=0; dout_pro<=0;en_dout_pro<=0;
    end
    else begin
    	case(state)
    	0: // 等指令,收指令
    	begin 
    		en_dout_pro <=0;
    		if(en_din_pro)begin
    			cmd_reg <= din_pro;
    			state<=1;
    		end
    	end
    	
    	1: // 收A
    	begin
    		if(en_din_pro)begin
    			A_reg <= din_pro;
    			state<=2;	
    		end
    	end
    
    	2: // 收B
    	begin
    		if(en_din_pro)begin
    			B_reg <= din_pro;
    			state<=3;	
    		end
    	end
    	
    	3: // 指令译码和执行
    	begin
    		state <= 4;
    		case(cmd_reg)
    		add_ab: begin dout_pro <= A_reg + B_reg; end
    		sub_ab: begin dout_pro <= A_reg - B_reg; end
    		and_ab: begin dout_pro <= A_reg & B_reg; end
    		or_ab: begin dout_pro <= A_reg | B_reg; end
    		endcase
    	end	
    	4: // 发送指令执行结果
    	begin
    		if(~rdy)begin // rdy低表对方空闲,可发送
    			en_dout_pro <=1;  // 发送使能拉高
    			state <= 0;
    		end
    	end
    	
    	default://
    	begin
    		state<=0;
    		en_dout_pro <=0;
    	end
    	
    	endcase
    end
    
    	
    endmodule
    
    
    
    // 2022-1-23 verilog学习
    // 串口指令处理器 封装顶层 连线,全是wire
    
    `timescale 1ns/10ps
    
    module URAT_top(
    					clk,
    					res,
    					RX,
    					TX
    					);
    								
    input				clk;
    input				res;
    input				RX;
    output				TX;	
    
    // 封装顶层,中间连线均为wire
    wire[7:0]			din_pro;
    wire				en_din_pro;
    wire[7:0]			dout_pro;					
    wire				en_dout_pro;
    wire				rdy;
    
    URAT_RXer URAT_RXer(
    					.clk(clk),
    					.res(res),
    					.RX(RX),
    										.data_out(din_pro), // data_out接din_pro
    										.en_data_out(en_din_pro)
    										);
    										
    URAT_TXer URAT_TXer(
    					.clk(clk),
    					.res(res),
    										.data_in(dout_pro),
    										.en_data_in(en_dout_pro),
    					.TX(TX),
    					.rdy(rdy)
    					);
    										
    cmd_pro cmd_pro(
    					.clk(clk),
    					.res(res),
    					.din_pro(din_pro),
    					.en_din_pro(en_din_pro),
    					.dout_pro(dout_pro),
    					.en_dout_pro(en_dout_pro),
    					.rdy(rdy)
    					);
    
    endmodule
    
    // testbench
    
    module URAT_top_tb;
    reg						clk,res;
    wire					RX;
    wire					TX;
    
    reg[45:0]				RX_send;  // 里面装有串口字节发送数据
    assign					RX = RX_send[0];  // 连接RX
    
    reg[12:0]				con;
    
    URAT_top URAT_top(
    						clk,
    						res,
    						RX,
    						TX
    						);
    								
    // 初值
    initial begin
    											clk<=0;res<=0;con<=0;RX_send<={1'b1,8'h09,1'b0,1'b1,8'h06,1'b0,1'b1,8'h0a,1'b0,16'hffff};  //结束位,字节,起始位,空闲(往右输出)
    					#17 			res<=1;
    					#4000000		$stop;
    end
    
    always #5 clk = ~clk;
    always@(posedge clk)begin
    	if(con==5000-1)begin
    		con <= 0;
    	end
    	else begin
    		con <= con + 1;
    	end
    	
    	if(con==0)begin
    			RX_send[44:0] <= RX_send[45:1];  // 右移
    			RX_send[45] <= RX_send[0];   // 循环右移
    	end
    end
    
    endmodule
    
    

    modelsim:

    在这里插入图片描述

    忘记 
    reg  en_dout_pro;
    en_dout_pro<=0; reg型变量清零
    

    {1’b1,8’h09,1’b0,1’b1,8’h06,1’b0,1’b1,8’h0a,1’b0,16’hffff}
    发送的数据 8’h09, 8’h06,发送的操作符8’h0a;
    应该接收8’h0f:0000_1111
    低位先接收,则波形为:起始位0+1111_0000

    在这里插入图片描述


    在这里插入图片描述

    展开全文
  • 串口控制,10路触发QYMUSB2FS语音模块实物截图: 串口控制,10路触发QYMUSB2FS语音模块电路功能如下: 1、支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48 2、24 位DAC 输出,动态范围支持90dB,信噪比支持85dB 3、...
  • 通过串口助手需要多条指令,输入起来比较吗,自己做了一个上位机程序,包括串口通信,仪表监控,数据显示等内容。能够满足自己使用要求。
  • 本例程是基于柯力XK3101电子称重仪串口通讯VC++6源代码, 电子称重仪工业常用有浙江柯力,上海耀华,他们的串口通讯方法基本是一直的,可应用与汽车检测站的轴重检测、各种物体的重量称量,电子称重仪只需要接上...
  • 1、软件:串口调试助手(推荐官方的QCOM,可以讲命令保存为脚本,方便后续多次的调用) 2、硬件:EC20硬件套件、USB转串口线 3、文档:《Quectel_EC20_R2.1_AT_Commands_Manual》 二、硬件环境的搭建 1、模组...
  • 2.2 串口指令 此处指令全部出自用户手册的第4章 2.2.1 测量模式 2.2.2 电压量程设置 2.2.3 设置刷新速率 注意: 2.5读数据/秒 = 400ms 测量一次数据的周期,使用串口等工具发送连续测量的指令或者更使用PC软
  • 斑马打印机指令说明

    2018-07-20 11:26:57
    斑马打印机在制造业内使用广泛,这份指令表及编程很详细
  • 绍基于proteus的51单片机仿真实例之串口发送字符串实例。本例中程序像主机发送的是英文字符串,所发送的字母会通过虚拟终端显示出来。
  • 画面中任何按钮被按下或弹起,屏幕都会将该按钮的ID和状态值上传给用户,用户单片机接收串口指令并解析,即可判断当前按钮的动作。2.文本控件用户预先通过上位机将文本在画面中的显示坐标、颜色、字体和背景色设置好...
  • 0x0011 Authentication Requested command 用于指令连接句柄的两个蓝牙地址进行身份认证 0x0013 Set Connection Encryption command 建立或者取消连接层次的加密 0x0015 Change Connection Link Key command 用于...
  • 基于QSerialPort开发的串口调试工具,支持高速自定义波特率,自动发送,自定义功能按钮及指令,采用QSS样式进行了美化,给公司做的测试调试用工具,共有3个模块,可以在此基础上删减。共分两个版本,win7版本适合...
  • 现在讨论如何用python3向串口发送按键指令python3操作串口需要调用pyserial库import serial串口的打开指令ser=serial.Serial(COM4)ser.baudrate=115200ser.timeout=0.5 #这几句指令打开串口COM4,并设置波特率串口的...
  • NRF24L01 2.4G无线模块功能概述:(1)2.4Ghz 全球...IO口操作指令表:(端口1、2举例) 附件内容截图: 实物购买链接:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15803265497.12.trOTmk&id=24685468283
  • QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03【EC20模组基础串口指令说明】一、准备工作二、硬件环境的搭建三、基础AT指令的说明和测试 原文链接:...
  • 此为本人工作中的辅助程序, 其中主要是把串口接收的指令与数据拆分并执行,程序附带Excel电子表格数据的导入导出功能,编程工具:vs2010 winform
  • DELPHI串口编程

    2015-12-10 21:39:48
    广义的计算机接口有二种,见下: 类別 用途 电路实现复杂性 存储器接口: 用于CPU与外部设备、存储器的连接 简单 I/O接口 数据交换 复杂 习惯上说到接口只是指I/O接口。本文沒作特別介绍的地方都叫I/O接口. 4. ...
  • 命令行解释器 串口

    千次阅读 2017-01-17 14:21:15
    程序调试是一门技术,基本上我们需要两种调试手段,一种是可以单步仿真的硬件调试器,另外一种是可以长期监视程序状态的状态输出,可以通过串口、显示屏等等手段输出异常信息或者某些关键点。这里的命令行解释器就...
  • MT510TV4是威纶科技MT500系列中104寸的...它可以以各种生动的图形方式显示PLC,单片机,变频器,温控等内部寄存器或继电器的数值和状态,并提供配方卡,报警信息保存等功能.可以通过快选窗口迅速进入所需的设置/监控画面。
  • 在写串口指令的时候,指令格式一般都是[xxx]Command[xx],例如[STX]abc[CR]。 在Labview程序编写是有自动添加末尾的结束字符的 但指令的前缀是不会自动添加的,需要自己去创建添加。 创建方法: 如红色圈所示,那...
  • 4. 熟悉软件后,观看快速入门文件中的《指令助手与虚拟串口屏联机通信V1.0.pdf》,直接使用电脑的串口模拟单片机发送和接收指令,体验各个指令功能使用方法。 5. 学会软件操作后,开始阅读《基于51和STM32单片机的...
  • 最近在做台湾ESCORT3146a、Fluke多台仪表与电脑串口通讯的项目,好不容易搞到的手册,连夜调试程控成功。但是通讯参数要注意CR LF ,当时因为它的原因捣鼓老长时间。用的C#开发的,如果有需要可以联系我。
  • ZigBee串口通信

    千次阅读 2021-05-27 17:54:43
    一、串口通信原理 1.什么是UART ​ UART : Universal Asynchronous Receiver/Transmitter 通用异步收发器 ​ 一种常用也是最简单的串行数据传输协议。数据线只需要两根就可以实现全双工。 ​ Tx:发送数据线 ​ Rx:...
  • setWindowTitle("加电压采集程序"); this->setFixedSize(this->width(), this->height()); ui->btn_stop->setEnabled(false); InitCommCmb(); //初始化数据 m_bOpen = false; m_serial = new QSerialPort; m_...
  • <p>2、发送AT指令串口无任何响应; <p>3、手机上的蓝牙调试助手可以连接此蓝牙模块,串口调试助手上户显示+CONNECTED,并且可以手机发送,PC串口接收相同数据;断开时,PC...
  • 串口调试命令 debugadb 命令(去掉adb shell即为串口命令)发送广播 adb shell am broadcast -a com.android.test打开activity adb shell am start -n ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,445
精华内容 6,578
关键字:

串口指令表