完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
AD的本身速率最大可以达到1M,去采样一个1KHZ的正弦信号,一个周期内按说可以采集1000个点,但是你去采集然后采集一个输出一个你就会发现一个周期内才采样了10个点,这是为什么呢?
是因为你的串口太慢了,我们知道串口本身是有一个波特率属性的,当你把波特率慢慢调大的时候,你会发现还是那个AD速率,但是一个周期内采样的点变多了,也就是说并不是AD采集的慢,而是我AD采集了你串口呢并不能及时发送,那就是木桶原理了,一个团队的工作速率不是看最快的那个人,而是看最慢的那个人!所以我们怎么样才能获得真实的采样值呢? 首先不能AD采样一次串口输出一次,那也即是说我要一下子采集很多很多个点然后一起通过串口输出出来,有三种方式可供选择: 1、开启AD中断,在中断中把本次采样值存到数组里,当采样次数达到所需要时,在通过串口一次性输出。 2、开启定时器中断,AD设置为连续转换,让AD以他自己的1MHZ去采样,然后我控制定时器的频率,每次定时器进入中断我就把目前正在进行的一次AD采样的值取出来放入数组,这样也能灵活的获取到所需要的值,当然这种方法的优点在于可以降低AD采样的最小速率(FFT变换时,我们要让AD速率尽可能的小)缺点就是不能把所有AD采样的值全部获取到。 3、开启DMA中断,把每次AD采样的值通过DMA存放到数组中,然后设置DMA的缓存大小,当存放的数据达到缓存大小时进入DMA中断,一次性输出所有AD采样数据。 欢迎各位大佬前来指正! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1618 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1545 浏览 1 评论
979 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1597 浏览 2 评论
1864浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 20:58 , Processed in 0.811190 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号