nrf52832 要用到三个ADC通道,通过定时器,间隔1毫秒采集一次数据,放入缓存中,等需要数据时,在处理缓存中的数据,返回数据,设置了通道0,1,2,在回调里,怎么知道哪个数据是第一个通道ADC的,哪个是第二个通道ADC的,哪个是第三个通道ADC的,我百度的资料是第一个数据就是通道1,然后通道2通道3,实际测试也是对的,但是有时发现顺序会错乱,导致采集数据不对,
正常是ch0_valbuf保存AIN0管脚的电压,ch1_valbuf保存AIN2管脚的电压,ch2_valbuf保存AIN3管脚的电压, 运行的正常的时候确实如上保存 异常的时候就会错乱,出现过ch0_valbuf保存AIN2管脚的电压,ch1_valbuf保存AIN3管脚的电压,ch2_valbuf保存AIN0管脚的电压,完全错位
lovewa
这个驱动代码大多是参考百度别的大神的,从代码逻辑上看,应该是一次读了三个,而且我打印了SAADC回调函数的p_event->data.done.size,每次都是3,而且我查资料发现确实是三个通道采集完成才会进入回调函数
lovewa 那每次读完就清除一下缓存区吧
与nRF的多通道SAADC的帖子内容重复,已解决!