找回密码
 立即注册
查看: 6468|回复: 35

FFT频谱分析-视频讲解, USB-CDC虚拟串口送电脑显示

[复制链接]

该用户从未签到

45

主题

2920

回帖

6564

积分

超级版主

积分
6564
发表于 2023-6-25 18:31:58 | 显示全部楼层 |阅读模式
FFT频谱分析-STC32F12K54-52MHz-实验箱9.63
===USB-CDC虚拟串口/就是串口,
===送 STC-ISP V6.92L版 | STC调试接口 | FFT绘图 显示 程序发布
===另外17楼有STC32G12K128的 FFT开源程序
频谱256点频谱例程,ADC采样(256KHz)FFT蝶形计算(整数计算)
USB-CDC虚拟串口/就是串口 上传耗时 大约4.9ms@52MHz,CPU占比不到50%
可以看出STC32F的强大计算能力,频谱是连续计算的

截图202312101136241517.jpg
简介.jpg
FFT频谱-实验箱V9.63--STC32F12K54-52MHz, USB 虚拟示波器显示-2.png
1KHz正弦波频谱.JPG
FFT频谱分析-STC32F12K54-52MHz-实验箱9.63
===USB-CDC虚拟串口/就是串口,
===送 STC-ISP | STC调试接口 | 数字示波器 显示 程序发布
音乐频谱.JPG
FFT频谱分析-STC32F12K54-52MHz-实验箱9.63
===USB-CDC虚拟串口/就是串口,
===送 STC-ISP | STC调试接口 | 数字示波器 显示 程序发布

2023/12/9, 更新了FFT频谱的说明、程序、图片、视频
实验箱9.63-STC32F-256点FFT-CDC-虚拟示波器界面显示.rar (1.08 MB, 下载次数: 391)


截图202312101127376793.jpg
回复 送花

使用道具 举报

该用户从未签到

550

主题

9234

回帖

1万

积分

管理员

积分
13942
发表于 2023-6-25 22:45:08 | 显示全部楼层
视频讲解在这
【新提醒】视频回放,2023/8/21期,FFT频谱分析,梁工主讲 - 《单片机原理及应用》教学改革及实践研讨会,实战技术交流会,会务通知,视频回放 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)


1.png

480x320示波器波形水平400点,垂直250点,网格每5个点显示一点,每25点一排点。
0~250(0x00~0xfa)为数据。
251(0xfb)为帧数据头,后面是400个字节的Y轴数据。
252(0xfc)为点数据头,之后是点X、Y的数据。
253(0xfd)为转义符,如果收到这个字符,则之后的一个字节要加上0x80。
254(0xfe)为命令头,表示后面是命令。
255(0xff)为数据结束标志。

单片机上传数据协议:
上传一帧数据:FB DAT0 DAT1 ..... DAT399 FF
    FB:帧数据
    DAT0 ... DAT399:400个Y轴数据(数值为0~250),字节序号0~399就是X轴。
    FF:帧数据结束

上传一个点数据:FC DAT0 DAT1 DAT2 FF
    FC:点数据
    DAT0 DAT1:X轴位置(0~399),DAT0为位置高字节,DAT1为位置低字节。
    DAT2:Y轴数值(0~250)。
    FF:点数据结束

上传一个命令:FE TYPE  DAT0 DAT1 ... DATn FF
    本命令用于上传一些参数或操作,数值部分字节数依据命令不同而不同。
    FE:传输命令。
    TYPE:命令类型。
    DAT0 DAT1 ... DATn:数值。
    FF:命令结束

上传时基参数:FE 02 DATA0 DATA1 DATA2 FF
    02:上传的是时基参数。
    DAT0 DAT1:时基值,高字节在前,低字节在后。
    DAT2:时基单位。0--ns,1--us,2--ms,3--s。
    例:FE 02 01F4 01 FF,01F4十进制为500,01为us,则为500us/DIV。DIV是水平一个大格。

上传垂直幅度参数:FE 03 DATA0 DATA1 DATA2 FF
    03:上传的是垂直幅度参数。
    DAT0 DAT1:垂直幅度值,高字节在前,低字节在后。
    DAT2:幅度单位。0--uV,1--mV,2--V。
    例:FE 03 01F4 01 FF,01F4十进制为500,01为mV,则为500mV/DIV。DIV是垂直一个大格。

上传运行模式:FE 04 DATA0 FF
    04:上传的是运行模式。
    DAT0:运行模式。0--停止,1--运行。

上传触发模式:FE 05 DATA0 FF
    05:上传的是触发模式。
    DAT0:触发模式。0--上升沿,1--下降沿。

上传触发方式:FE 06 DATA0 FF
    06:上传的是触发方式。
    DAT0:触发方式。0--自动,1--普通(标准),2--单次。

上传频率参数:FE 07 DATA0 DATA1 DATA2 DATA3 FF
    07:上传的是频率值。
    DAT0~DAT3:频率值,高字节在前,低字节在后。
    例:FE 07 00002710 FF,00002710十进制为10000,则频率为10000Hz。

上传波形左移时间:FE 08 DATA0 DATA1 DATA2 FF
    08:上传的是波形左移时间。
    DAT0 DAT1:左移时间值,高字节在前,低字节在后。
    DAT2:时间单位。0--1ns,1--10ns, 2--100ns, 3--1us,4--10us, 5--100us, 6--1ms,
                    7--10ms, 8--100ms, 9--1s。
    例:FE 08 01F4 03 FF,01F4十进制为500,03为1us,则波形左移了500us。

上传清屏指令:FE 09 FF
    09:上传的是清屏指令。PC收到后,清除波形显示。连续逐点显示时,改变时基会用到。


PC下传键代码:FE 01 DAT0 FF
    01:命令类型为键码。
    DAT0:01--时基+,02--时基-,03--垂直幅度+,04--垂直幅度-,05--运行/停止,
          06--触发模式,07--触发方式,08--波形左移,09--波形右移,
          0A--波形上移,0B--波形下移



回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9234

回帖

1万

积分

管理员

积分
13942
发表于 2023-6-25 22:53:01 | 显示全部楼层
频谱分析仪程序发布,STC32F12K54  !显示借用
STC-ISP V6.91V版 中的STC调试接口 | 数字示波器

1.png

FFT频谱分析程序从一楼下载
后续 STC调试接口 会推出专门的 【频谱显示】来配合显示

















回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9234

回帖

1万

积分

管理员

积分
13942
发表于 2023-6-26 07:55:02 | 显示全部楼层
STC32F12K54-实验箱V9.63版原理和PCB
1.png
2.png

3.png

4.png


5.png



实验箱9.63_2023-6-10-SCH.pdf

409.7 KB, 下载次数: 124

实验箱9.63_2023-6-10-PCB.pdf

966.5 KB, 下载次数: 96

回复 支持 1 反对 0 送花

使用道具 举报

该用户从未签到

550

主题

9234

回帖

1万

积分

管理员

积分
13942
发表于 2023-6-30 09:19:59 | 显示全部楼层
从8051到328051何宾教授带大家一起穿越腾讯会议,7/25开始
《STC32位8051单片机原理及应用-STC32G12K128》线上课程, 0基础开始
暑期腾讯会议免费教学研讨班, 学生也可参加, 全球免费直播教学, 64个课时
2023/7/25, 下周二, 14:00 ~ 17:00;7/28, 周五, 14:00 ~ 17:00;
===基于自带硬件USB仿真的32位8051,STC32G12K128中英双语
===北京化工大学何宾教授亲自主讲,STC创始人主持授课,正统权威

腾讯会议号:885-5858-2739; 2023/7/25, 下周二开始,周二/周五
参加完全程可授予STC32位MCU研讨会证书
参加到半程可赠送STC32G12K128实验箱,可做示波器 / 波形发生器


要获得STC单片机研讨会证书证书,获得免费赠送的实验箱,自己在STC论坛
www.STCAIMCU.com 打卡区单独开个贴发表自己每节课心灵感悟即可
64课时,48小时教授讲完扎实的原理和应用后,STC强化24小时实战

=========================================

参考资料及软件
STC8H系列 1T 8051中文数据手册更新 ,  2023/7/25
http://www.stcmcudata.com/STC8F-datasheet/STC8H.pdf

STC32G系列32位8051中文数据手册更新 ,  2023/7/25
http://www.stcmcudata.com/STC8F-datasheet/STC32G.pdf

STC-ISP V6.92A版本 软件
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.92A.zip


回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

7

回帖

34

积分

新手上路

积分
34
发表于 2023-7-29 10:35:26 | 显示全部楼层
学习一下,谢谢!
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

1

回帖

14

积分

新手上路

积分
14
发表于 2023-8-2 09:48:15 来自手机 | 显示全部楼层
梁工,我想问一下,我们通常所说的串口sbuf他不是有接收和发送端吗?那我在编写程序的时候,可以将sbuf接收和发送分别赋不同变量的值给它吗?

点评

串口发送SBUF、接收SBUF是两个寄存器,共用一个地址,读操作读的是接收寄存器,写操作写的是发送寄存器,这两个寄存器完全独立、相互无关的,当然可以用不同的变量传递数据了,实际也基本都是用不同的变量的。  详情 回复 发表于 2023-8-2 17:25
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2920

回帖

6564

积分

超级版主

积分
6564
 楼主| 发表于 2023-8-2 17:25:08 | 显示全部楼层
北聿 发表于 2023-8-2 09:48
梁工,我想问一下,我们通常所说的串口sbuf他不是有接收和发送端吗?那我在编写程序的时候,可以将sbuf接收 ...

串口发送SBUF、接收SBUF是两个寄存器,共用一个地址,读操作读的是接收寄存器,写操作写的是发送寄存器,这两个寄存器完全独立、相互无关的,当然可以用不同的变量传递数据了,实际也基本都是用不同的变量的。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

5

回帖

26

积分

新手上路

积分
26
发表于 2023-8-3 17:13:43 | 显示全部楼层
梁工,fft的例程如何获取频谱对应实际频率和他对应的幅值啊

点评

例子种,实部平方+虚部平方,然后开方,就是对应的幅度(峰值),频率是线性的,比如例子用25.6KHz采样,则12点频率就是0HZ(直流)、100Hz、200Hz、300Hz。。。。12700Hz,一共128点频率。 计算幅值: for(i=0; i  详情 回复 发表于 2023-8-3 23:19
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

5

回帖

26

积分

新手上路

积分
26
发表于 2023-8-3 17:21:07 | 显示全部楼层
梁工,在15kHz下输入正弦波,他的频谱是往右移动,但超过15kHz后,增大频率频谱会向左移动,这是为什么

点评

根据采样定理,25.6KHz采样只能输入12.7KHz以下的频率,超过则发生频谱更迭。 由于傅里叶变换的共轭对称性,所以会出现对称的两半频谱值,我们值显示低128点就可以了,高128点是对于fs/2对称的。  详情 回复 发表于 2023-8-3 23:40
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-4-29 02:44 , Processed in 0.074575 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表