完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在使用ESP32-S2采集大量数据(振动波形,频率5Khz或更高)并传输。因为想拥有更高的采样率,所以打算采用ADC的连续采样来实现(可达2MSPS)。
前段时间把wifi的station,ap;adc的单次,dma_read(连续);timer_group例程都看明白了,最近准备把他们结合一下,adc采样率定为1000*256(1s采1000次,每一次256个点)。然后将定时器定为1ms中断一次,每次中断将标志位至1,进入主函数进行adc_digi_read_bytes函数的读取,读取完标志位至0,存储数组的地址+256,等待下一次读取。当存储数组满时通过wifi发送储存数据到PC。 我想问两个问题: 第一:我上述的采样思路是否存在错误,因为我这几天写该程序的时候,从会有各种bug导致ESP32-S2重启(多数为开门狗超时) 第二:STM32具有定时器触发连续采样的功能,我更想实现该功能,但我未找到相关的API,没找到关于adc这方面的函数。所以想问一下是否有定时器触发ADC连续采样并通过dma传输的例程。 谢谢了! |
|
相关推荐
1个回答
|
|
您的问题似乎没有完整地提出,但我会尽量根据您提供的信息来回答。
1. 您想要实现的功能是使用ESP32-S2的ADC进行连续采样,并通过DMA传输数据。您计划使用定时器触发ADC采样,然后将采样数据存储在数组中,当数组满时通过WiFi发送数据到PC。 2. 您的问题可能包括: a. 如何确保ADC采样的准确性和稳定性? b. 如何优化DMA传输以提高效率? c. 如何在数组满时及时发送数据? 针对这些问题,我提供以下建议: 1. 确保ADC采样的准确性和稳定性: a. 选择合适的ADC分辨率和采样率,以满足您的应用需求。 b. 在ADC初始化时,设置合适的参数,如采样周期、采样窗口等。 c. 使用硬件滤波器或软件滤波器对采样数据进行处理,以减少噪声。 2. 优化DMA传输以提高效率: a. 确保DMA的配置正确,包括源地址、目标地址、传输长度等。 b. 在中断服务程序中,尽量减少执行时间,以避免影响ADC采样和DMA传输。 c. 考虑使用DMA链表传输,以减少中断次数和提高传输效率。 3. 在数组满时及时发送数据: a. 在主函数中,检查数组是否已满,如果已满,则通过WiFi发送数据。 b. 使用非阻塞的WiFi传输方式,以避免阻塞ADC采样和DMA传输。 c. 可以考虑使用任务调度或事件驱动的方式,以实现数据发送的异步处理。 希望这些建议对您有所帮助。如果您有其他具体问题,请随时提问。 |
|
|
|
只有小组成员才能发言,加入小组>>
920 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
446浏览 5评论
446浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 18:14 , Processed in 0.845989 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号