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

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

[复制链接]
00-405686 发布时间: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 评论32 发布时间:2016-1-16 17:56

举报

32个回答
zwei99999999 回答时间:2016-1-16 22:26:15
楼主做的还行   顶一下
00-405686 回答时间:2016-1-17 14:55:57
实时显示 QQ图片20160117145407.gif
00-405686 回答时间: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
楼主的板子多少钱?
dsjsjf 回答时间:2016-1-18 14:07:41
好牛逼啊
123tango 回答时间:2016-1-18 14:25:23
好想也有一个
00-405686 回答时间:2016-1-18 19:09:27

感谢支持
1234下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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