|
想用i2s把adc采集的数据放到数组里,但有时候打开串口软件后会出现图1这样的错误修改几次参数之后发现这应该是我参数设置不正确导致的,我的i2s配置是图2。dma_buf_len设置的1000,sample_rate设置的1000。
我用图3的代码检查数组内的数据是否正常,有时候参数设置不会导致频繁重启的时候会读出连续的两个相等的值,比如读10次,会出现1000,1000,1120,1120,1340,1340,1220,1220,1010,1010这样的情况。
我想问下
1. 用i2s把adc采集的数据放到数组里时,i2s的参数要怎么确定?如dma_buf_len、sample_rate之类的。
2. 怎么确定adc采集的数据是按什么速度由i2s转移到数组里的?
3. 之前看到有人说dma_buf_len这个参数的值要大于8小于1024,那这个就是i2s缓冲区的大小吗?
adc的值在没有用i2s_read之前是一直保存在这里面的吗?
如果一直没有i2s_read这个操作的话,adc的数据是从第一个开始一直保存到最后再从第一个开始覆盖吗?这样会不会出现用i2s_read时读取到一部分新数据和一部分未被覆盖的旧数据的 情况?
麻烦各位帮帮我了 ,谢谢
|
|