触发采样,与在定时器中断中开启一次采样的效果类似,以此来控制采样的间隔时间相同),然后通过由于设定采集一次完整的波形需要1024个点,即需要连续采集1024次才算一次完整的波形采样(需要采集1024个点的原因在后面会提到)。
因此我们还需创建一个数组用于存储这些数据,并在DMA中断中,将成功转移到变量中的数据依次存储进数组(注意此数组中存入的数据是12位的数字量,还未做回归处理),完成1024个数据的采样和储存,用于后续在LCD上进行波形的显示和相关参数的处理。
此案例用到的是ADC1的通道6(即PA6口)进行数据的采样,主要需注意将ADC转换的触发方式改为定时器触发(我用的是定时器2的通道2进行触发,由于
手册提示只有在上升沿时可以触发ADC,因此我们需要让定时器2的通道2每隔固定的时间产生一个上升沿)。将定时器2设置成PWM模式,即可令ADC1在定时器2的通道2每产生一次上升沿时触发采样,后续即可通过改变PWM的频率(即定时器的溢出频率),便可控制采样的频率。
由于在设置PWM时将TIM_Pulse默认设置为1000,因此在初始化定时器2时,TIM_Period的值不能小于该值,可自行修改。TIM_Pulse的值并不会影响采样频率。
数据的处理主要是要求出信号的频率和幅值等相关参数。幅值可以通过找出之前存储1024个点的数组中最大最小值,回归处理过后算出差值。
难点主要在于频率的求取。一个信号中可能包含多种频率成分,而我显示的是幅值最大的频率分量(当然其他频率也可获得)。这里便用到了STM32提供的
库中的FFT(快速傅里叶变换),DSP库在最后的源码中有。需要采样1024个点的原因:FFT
要求样本数为2的n次方,而DSP库中提供了64,256和1024样本数对应的库函数,因此选用1024最大样本数可以使频率分辨率最小,更加精确。(定义频率分辨率f0=fs/N,其中fs等于采样率,N为采样点数)需注意:FFT后的输出不是实际的信号频率,需要经过转换。f(k)=k*(fs/N),其中f(k)是实际频率,k是实际信号的最大幅度频率所对应的数。(详见下面代码,分享的源代码中公式有误,未重新上传)
输出,在定时器3的中断中不断改变DAC的输出值,产生一个正弦波。因此改变正弦波的频率可以通过更改定时器3的溢出频率。(采用的PA4口进行输出)在初始化时,我将定时器3的重装载值设置为40,预分频值设置为72,正弦波输出频率为72Mhz/40/72/1024≈24.5Hz(1024是因为将一个周期正弦波均分成1024个输出点,详见下面函数InitBufInArray())。
经采样处理后显示为24-25Hz,与实际值接近。(但是当采样频率提高到最大3.6kHz时,频率显示为32Hz左右,原因未知)
内部的发生器产生。DAC2的转换由定时器4的TRGO触发(事件触发)。同时需要注意设置TRGO由更新事件产生。若为三角波输出,频率=72Mhz/定时器重装载值/预分频系数/幅值/2;
显示波形只需将所获得的1024个采样数据选择一部分进行显示大致思路如下:
ISP在线下载程序!!下面是源代码,结合VB或VC编程PC端的下载窗口,就是自己的ISP! ;*******************************************;* SST FlashFlex51 系列
实现方法。系统由信号调理、程控放大、比较整形和时钟产生、采样控制、测频模块和校准信号产生等模块组成
节日彩灯控制电路程序 ;***************************************************;*
系统的精密时钟发生电路对高频信号(1MHz~80MHz)进行等效采样的方法,设计并实现一个模拟带宽为1Hz~80MHz的简易数字
应用系统就会得经济,工作可靠;如果选择得不合适,就会造成经济浪费,影响
在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温
乘除运算,简化代码如下 unsigned char a = 100; unsigned char b = 120; unsigned char
来和主机进行通信的,都是modbus协议通过串口来实现通信的。之前为了调通串口,所以
麻雀虽小五脏俱全,在家用、玩具等消费类领域有非常多的应用。新手刚学习完51
放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。只是不同的
的卡槽中有一个开关是对应的 ,凹槽对应开关 ,如果插错了会导致烧毁的。介绍
测量发现,外部晶振没有正常工作。原因是晶振的封装和之前批次的不同。解决方案:通过更换原封装的晶振。...
由于工作原因时间不允许每天更新一篇DIY,一篇电子DIY文章需要的时间很多,包括制作,BOB电子官网录视频,剪切视频,过程有点繁琐,小编将讲通过
,RTOS的不少。尽管我目前从事Linux/Android方面的嵌入式开发工作,但是读书的时候也有5年左右
闪烁灯资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
的菜单框架资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。BOB电子官网
开发更是有13年之久。在刚开始工作的时候,当时也没想这么远,一心只想学习一门技术,然后找到一份不错的工作。至少比去工地
文章目录1 简介2 主要器件3 实现效果4 设计原理5 部分实现代码6 最后1 简介Hi,大家好,这里是丹成学长,今天向大家介绍一个学长
(如意法半导体集团(STM)的STM32,M3内核),高性能、高性价比、功耗低。3.1T
和可编程逻辑器件(CPLD)为核心,由通道输入调理、触发信号产生、采集存储、数据融合处理、波形显示、操作面板和掉电保护等功能模块组成
和手机通信,能和手机通信的方案有很多这种,像常用的蓝牙,Wifi等等,当然还有更高层次的通过互联网,一般我们使用比较多的就是
控制开关电源简介文档,是一份还算不错的参考文档,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,
实现多路电量脉冲测量的接口设计,BOB电子官网说明了接口硬件组成、多路电量脉冲测量算法和软件编程。关键词:
2使用定时器T0在P1.0以PWM方式连续输出接收的正弦波,中断方式实现,接有源RC滤波器,虚拟
,在软硬件有机结合下,可以达到所要求的性能指标,运行稳定可靠。测试表明该数字
11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果
寄存器定义的头文件void main(void){ P1=0xfe; //P1=1111 1110B,即
? 为了跟上时代发展的脚步,一些净水器商家纷纷打出“低碳、环保”的概念,吸引大家的目光,甚至夸大净水器的功效,“美白养颜”...
? 若要快速计时,请轻点一个时长(如1、3或5分钟),或者在“最近使用”下方轻点最近用过的计时器。若要创建自定计时器,请向...
? 1、太阳:表示制热模式,这个模式一般用于冬天天气寒冷的时使用,温度设定一般在20至22度之间,空调制热功率是恒定的,在...
BOB电子手机APPBOB电子手机APPBOB电子手机APP把水抹到皮肤上,也有凉意,没有酒精明显。因为酒精比水更容易...
非常在线日消息,相关资料显示,我国水体重金属污染问题十分严峻,水污染成为不折不扣的隐形杀手。我们日常使用的自来水安全吗...
十大净水器排名,十大家用净水器品牌排名,十大全屋净水器品牌排名,十大高端净水器排名前十 随着人们饮水健康意识的普遍提...