美文网首页
笔记:NRF52832 调试SAADC

笔记:NRF52832 调试SAADC

作者: Simpreative | 来源:发表于2019-02-21 16:11 被阅读0次

参考:https://blog.csdn.net/jdsnpgxj/article/details/80295208

https://www.cnblogs.com/Manual-Linux/p/9380267.html

SAADC就是52832中的ADC模块,用来采集模拟电压,具有12位分辨率,0-VDD全范围输入,8个通道可以组成差分输入,最高200ksps等特性,性能实测不是很好,不是精密测量可以用。

具体参数可以查看数据手册,下面来说一下如何使用。

SAADC的工作过程:

1、配置好你需要使用的每个通道。这里的通道不局限于那8个物理输入引脚,我没测试是不是可以有无限多个通道。每个通道的增益、参考源、输入引脚都可以单独设置!这边设置了3个通道,配置为单端输入,然后想改增益什么的话可以自己修改:

三个通道配置 可单独修改每个通道,自己写一个结构体

2、配置SAADC并初始化。在sdk_config.h中打开并设置好SAADC,并记得添加.c文件:

然后初始化SAADC并初始化前面所有的通道:

3、配置双缓冲区域,这个比较有意思,采样是按你上面初始化了的通道顺序循环的,这里我建议设置成前面通道数的倍数,不然你分不清是哪个通道的数据。比如这里我有3个通道,缓冲区域大小为6,那么每采集两组以后才会触发回调函数,采集之中CPU是不会工作的,而双缓冲的设置还保证了连续性。

4、使用一个Timer来触发每一次采集。先设置好一个m_timer,这里用的Timer0,如果在BLE应用中可以改成别的防止占用。

然后初始化Timer并设置好时间。这里的时间是每次采集的时间,设置是300ms。

相关文章

网友评论

      本文标题:笔记:NRF52832 调试SAADC

      本文链接:https://www.haomeiwen.com/subject/mbaryqtx.html