13818880150 发表于 2024-2-20 22:05:55

你好,虚拟示波器是通过ISP下载软件上的虚拟示波器,进行显示和操作的;
请问:自己如何编写电脑上的显示虚拟示波器程序,从哪下手?

神农鼎 发表于 2024-2-20 22:16:55













神农鼎 发表于 2024-2-20 22:18:34

数字示波器接口
 
480x320的示波器波形分辨率为:水平400点,垂直250点
网格每5个点显示一点,每25点一排点数据意义:
0(00H)~250(FAH)为数据。
251(FBH)为帧数据头,后面是400个字节的Y轴数据。
252(FCH)为点数据头,之后是点X、Y的数据。
253(FDH)为转义符,如果收到这个字符,则之后的一个字节要加上0x80。
254(FEH)为命令头,表示后面是命令。
255(FFH)为数据结束标志。
 数据传输协议:
功能FB:单片机上传数据(400个点的数据)
命令格式:FBH DAT0 DAT1 ..... DAT399 FFH
命令说明:
1字节:命令头(帧数据)
2~401字节:400个Y轴数据(数值为0~250),字节序号0~399就是X轴
402字节:命令结束(固定为FFH)
示例:



功能FC:单片机上传数据(1个点的数据)
命令格式:FCH DAT0 DAT1 DAT2 FFH
命令说明:
1字节:命令头(点数据)
2~3字节:X轴位置(0~399),DAT0为位置高字节,DAT1为位置低字节
4字节:Y轴数值(0~250)
5字节:命令结束(固定为FFH)
示例:



功能FE:上传设置参数(时基参数02)
命令格式:FEH 02H DAT0 DAT1 DAT2 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(02: 时基参数)
3~4字节:时基值,高字节在前,低字节在后
5字节:时基单位。0:ns,1:us,2:ms,3:s
6字节:命令结束(固定为FFH)
示例:FEH 02H 01H F4H 01H FFH
01F4H十进制为500,01为us,则为500us/DIV。DIV是水平一个大格


功能FE:上传设置参数(垂直幅度参数03)
命令格式:FEH 03H DAT0 DAT1 DAT2 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(03: 垂直幅度参数)
3~4字节:垂直幅度值,高字节在前,低字节在后
5字节:幅度单位。0:uV,1:mV,2:V
6字节:命令结束(固定为FFH)
示例:FEH 03H 01H F4H 01H FFH
01F4H十进制为500,01为mV,则为500mV/DIV。DIV是垂直一个大格


功能FE:上传设置参数(运行模式参数04)
命令格式:FEH 04H DAT0 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(04: 运行模式参数)
3字节:运行模式。0:停止,1:运行
4字节:命令结束(固定为FFH)
示例:FEH 04H 01H FFH
当前状态为运行


功能FE:上传设置参数(触发模式参数05)
命令格式:FEH 05H DAT0 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(05: 触发模式参数)
3字节:触发模式。0:上升沿,1:下降沿
4字节:命令结束(固定为FFH)
示例:FEH 04H 00H FFH
当前触发模式为上升沿触发


功能FE:上传设置参数(触发方式参数06)
命令格式:FEH 06H DAT0 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(06: 触发方式参数)
3字节:触发方式。0:自动,1:普通(标准),2:单次
4字节:命令结束(固定为FFH)
示例:FEH 04H 00H FFH
当前触发方式为自动触发


功能FE:上传设置参数(自动侦测的频率参数07)
命令格式:FEH 07H DAT0 DAT1 DAT2 DAT3 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(07: 频率参数)
3~6字节:频率值,高字节在前,低字节在后
7字节:命令结束(固定为FFH)
示例:FEH 07H 00H 00H 27H 10H FFH
00002710H十进制为10000,则当前自动侦测到的频率为10000Hz


功能FE:上传设置参数(波形左移时间参数08)
命令格式:FEH 08H DAT0 DAT1 DAT2 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(08: 时间偏移参数)
3~4字节:时间偏移/左移时间值,高字节在前,低字节在后
5字节:时间单位。0:1ns,1:10ns, 2:100ns, 3:1us,4:10us, 5:100us, 6:1ms,7:10ms, 8:100ms, 9:1s
6字节:命令结束(固定为FFH)
示例:FEH 08H 01H F4H 03H FFH
01F4H十进制为500,03为1us,则波形左移了500us


功能FE:上传设置参数(清屏指令09)
命令格式:FEH 09H FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(09: 清屏指令)
3字节:命令结束(固定为FFH)
示例:FEH 09H FFH
PC收到后,清除波形显示


功能FE:PC下传按键值(下传指令01)
命令格式:FEH 01H DAT0 FFH
命令说明:
1字节:命令头(设置参数命令)
2字节:参数类型(01: 下传按键指令)
3字节:按键类型。01:时基+,02:时基-,03:垂直幅度+,04:垂直幅度-,05:运行/停止,06:触发模式,07:触发方式,08:波形左移,09:波形右移,0A:波形上移,0B:波形下移, 0C:上传参数
4字节:命令结束(固定为FFH)
示例:FEH 01H 05H FFH
PC下传05键值到单片机


串口绘图工具协议
 
数据流格式:
串口绘图工具可支持同时绘制1~8通道的数据,
当使能显示通道后,相应通道的数据需要按通道顺序上传到串口助手。例如:如果使能了通道1和通道2,则数据流的格式必须如下:
   通道1的第1个点的数据、通道2的第1个点的数据、
   通道1的第2个点的数据、通道2的第2个点的数据、
   ...
   通道1的第n个点的数据、通道2的第n个点的数据

每个数据点数据位宽可以是8bit或者16bit,
16bit的数据支持LE(低字节在前)和BE(高字节在前)格式。使能通道和数据格式可在画图界面的右键菜单的“设置”界面进行设置。注意:数据格式修改、通道使能设置以及加载/保存数据操作必须在
   串口助手处于关闭状态时(即画图工具处于空闲状态时)才能进行。
绘图界面键盘/鼠标操作:
目的操作方法
整体波形上/下/左/右移动在波形绘制区域按住鼠标左键上/下/左/右移动
整体波形仅在水平方向
左/右慢速移动在波形绘制区域上/下滚动鼠标滚轮
或按键盘左/右方向键
整体波形仅在垂直方向
上/下慢速移动在左边的垂直刻度区域上/下滚动鼠标滚轮
或按键盘PageUp/PageDown键
整体波形仅在水平方向
左/右快速移动在下方的进度条区域用鼠标左键按住进度块左/右移动
单通道波形上/下移动在左边的垂直刻度区域用鼠标左键按住相应通道的指示器上/下移动
整体波形水平放大/缩小在波形绘制区域按住鼠标左键,然后上/下滚动鼠标滚轮
或按键盘上/下方向键
整体波形垂直放大/缩小在左边的垂直刻度区域按住鼠标左键,然后上/下滚动鼠标滚轮
移动到波形的头部在下方的进度条区域用鼠标左键将进度块拖到最左边
或按键盘Home键
移动到波形的尾部在下方的进度条区域用鼠标左键将进度块拖到最右边
或按键盘End键
如何动态绘制波形并实时显示最新数据:
在下方的进度条区域用鼠标左键将进度块拖到最右边或按键盘End键
 


FFT(快速傅立叶)绘图接口
 
数据意义:
0(00H)~250(FAH)为数据。
251(FBH)为帧数据头,后面是128/64/32个字节的Y轴数据。
255(FFH)为数据结束标志。
 数据传输协议:
功能FB:单片机上传数据(128个点的数据)
命令格式:FBH DAT0 DAT1 ..... DAT127 FFH
命令说明:
1字节:命令头(帧数据)
2~129字节:128个Y轴数据(数值为0~250),字节序号0~127就是X轴
130字节:命令结束(固定为FFH)
示例:FBH xxH xxH ... xxH FFH



功能FB:单片机上传数据(64个点的数据)
命令格式:FBH DAT0 DAT1 ..... DAT63 FFH
命令说明:
1字节:命令头(帧数据)
2~129字节:128个Y轴数据(数值为0~250),字节序号0~63就是X轴
130字节:命令结束(固定为FFH)
示例:FBH xxH xxH ... xxH FFH



功能FB:单片机上传数据(32个点的数据)
命令格式:FBH DAT0 DAT1 ..... DAT31 FFH
命令说明:
1字节:命令头(帧数据)
2~129字节:128个Y轴数据(数值为0~250),字节序号0~31就是X轴
130字节:命令结束(固定为FFH)
示例:FBH xxH xxH ... xxH FFH


神农鼎 发表于 2024-2-20 22:22:22

电脑端的程序已经写好了,直接使用,电脑端的程序不开源/不提供指导,
通信协议是开源的/你可以根据这自行开发电脑端的软件,但我们不参与。
示波器程序@单片机,是开源的,C语言 源代码 开源

www.stcai.com/hxgnsyb


13818880150 发表于 2024-2-21 13:15:31

谢谢{:handshake:}

hushixiang 发表于 2024-11-29 15:19:29

用AI32示波器按照AI开源老梁示波器资料做一个成品:我提供3D结构图,调试好到能销售出市场。后期我需要源代码和PCB和BOM和原理图,能接单的和我联系

hushixiang 发表于 2024-11-29 15:31:52

云溪 发表于 2023-1-4 21:32
我的主页发了已经

用AI32示波器按照AI开源老梁示波器资料做一个成品:我提供3D结构图,调试好到能销售出市场。后期我需要源代码和PCB和BOM和原理图,能接单的和我联系

qwe 发表于 2025-6-8 13:29:48

测量电压范围是多少

qwe 发表于 2025-6-8 13:30:14

👍

Istar_MCU 发表于 2025-6-13 08:47:34

期待复刻
页: 1 [2] 3
查看完整版本: STC32示波器按照STC开源老梁示波器资料 重新设计了一个