你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

简易示波器(四)任意波形动态显示  

[复制链接]
294479435@qq.co 发布时间:2016-1-16 17:56
任意波形动态显示
简易示波器功能描述:

1.测量直流信号、交流信号的电压幅度;

2.测量交流信号的周期,并计算频率;

3.显示交流信号波形;

4.波形的放大和缩小;

5.···········

暂时就先实现以上几个简单的基本功能,STM32芯片是3.3V供电,AD采样也只有0-3.3V,前端没有做硬件电路,所以这些测量暂时都是0-3.3V;

目前实现功能:任意波形动态显示
首先看一下效果:
1.采集IO引脚翻转:
P60116-172601.gif
2.采集DAC模拟输出锯齿波:
P60116-172652.gif
3.采集DAC模拟输出方波:
P60116-172754.gif
大致实现过程:
首先在之前贴基础上更改:简易示波器(三)方波简单显示
(出处: 意法半导体STM32/STM8技术社区)
uint16_t uhADCxConvertedValue[1024*6] ={ 0};
a.ADC连续采集1024*6个数据并使能DMA存储在uhADCxConvertedValue数组中;
                HAL_ADC_Stop(&AdcHandle);
                for(i = 0; i < 1024*5; i++)
                {
                        y3 =400 - (80*3.3*uhADCxConvertedValue[i+512]/4095);
                }
                HAL_ADC_Start(&AdcHandle);
                flag = 1;
b.DMA完成后进入中断,关闭ADC采样并将数据复制到显示缓冲区的数组中,设定标志位置1,开启ADC继续采集(如果不暂停ADC,新采集的值会打乱完整的1024*6个数据,所以复制过程中暂停采集);
                 if(temp == 0)
                  {
                        for(i = 0; i<500;i++)
                        {
                                aPointsRe.y = y3;
                                //aPointsRe.x = x;
                        }
                }
                  else if(temp < 10)
                  {
                          for(i = 0; i<500;i++)
                        {
                                aPointsRe.y = y3[i+temp*500];
                                //aPointsRe.x = x;
                        }
                  }
                GUI_SetColor(GUI_GREEN);
                GUI_DrawPolyLine(aPointsRe,              /* Ö¸ÏòÒªÏÔʾµÄÕÛÏß */
                                                         GUI_COUNTOF(aPointsRe), /* µãÁбíÖÐÖ¸¶¨µÄµãÊýÁ¿ */
                                                         50,       /* Ô­µãµÄXλÖà */
                                                         40);
                  temp++;
                  if(temp == 10)
                  {
                          temp = 0;
                          flag = 0;
                  }
                  GUI_Delay(100);
c.回到主函数进行数据处理,由于每次显示的是500个数据,所以显示10次后在此读取ADC数据进行显示;


收藏 2 评论33 发布时间:2016-1-16 17:56

举报

33个回答
294479435@qq.co 回答时间:2016-10-28 23:54:04
happy无名 发表于 2016-10-28 08:28
楼主能分享下波形产生代码吗?我产生的示波器显示不出来,但用万能表却看出幅值变化 ...

代码有点乱,有点简单,请见谅! DAC_波形发生.rar (384.09 KB, 下载次数: 115)
294479435@qq.co 回答时间:2016-10-29 09:00:09
黑皮男 发表于 2016-10-29 07:41
好赞,绘图这一关我就没过,只能画点简单的

绘图我也只是调用GUI里面的库函数,程序也比较乱,一直想整理,都还没来得及
294479435@qq.co 回答时间:2016-1-20 18:26:28

沐紫姐客气了,我也是在论坛里面成长的,我应该谢谢感谢论坛
zwei99999999 回答时间:2016-1-16 22:26:15
楼主做的还行   顶一下
294479435@qq.co 回答时间:2016-1-17 14:55:57
实时显示 QQ图片20160117145407.gif
294479435@qq.co 回答时间:2016-1-17 16:57:11
zwei99999999 发表于 2016-1-16 22:26
楼主做的还行   顶一下

感谢支持
zhangdaijin 回答时间:2016-1-17 20:59:40
谢谢分享
擒入式 回答时间:2016-1-17 21:02:16
好厉害,佩服
zcl201207 回答时间:2016-1-17 21:48:18
楼主的板子多少钱?
埃斯提爱慕 回答时间:2016-1-18 14:07:41
提示: 作者被禁止或删除 内容自动屏蔽
123tango 回答时间:2016-1-18 14:25:23
好想也有一个
294479435@qq.co 回答时间:2016-1-18 19:09:27

感谢支持
294479435@qq.co 回答时间:2016-1-18 19:09:42

感谢支持
294479435@qq.co 回答时间:2016-1-18 19:09:58
zcl201207 发表于 2016-1-17 21:48
楼主的板子多少钱?

板子是一个论坛送的
294479435@qq.co 回答时间:2016-1-18 19:10:12

感谢支持
294479435@qq.co 回答时间:2016-1-18 19:10:28

这个可以有
stary666 回答时间:2016-1-19 10:14:31
看看,,,,,,,,,
123下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版