麦克风的采样频率比如是16000hz。
但发现默认的ADC端口只有几百Hz。
测试代码如下:
输出为:import time
ADC_DIR = "/sys/bus/iio/devices/iio:device0"
def read_value(file_path):
with open(file_path, "r") as file:
return file.read().strip()
def main():
print("Press Ctrl+C to quit")
start_time = time.time()
voltage_change = []
while time.time() - start_time < 1:
scale_value = float(read_value(f"{ADC_DIR}/in_voltage_scale"))
IN0_raw_value = float(read_value(f"{ADC_DIR}/in_voltage0_raw"))
IN0_voltage = f"{IN0_raw_value * scale_value / 1000:.2f}"
voltage_change.append(IN0_voltage)
print(f"{len(voltage_change)}Hz")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
pass
如果我在 while 循环里加中断,即Press Ctrl+C to quit
538Hz
输出结果如下:time.sleep(1/16000)
可以看到反而降低了。Press Ctrl+C to quit
491Hz
此外,我从https://whycan.com/files/members/9058/Rockchip%20RV1103%20Datasheet%20V1.1-20220427.pdf查看了RV1103的支持的最大ADC采样频率(如下图),最高值为1M。
plus的ADC端口的采样频率应该怎么设置?还请不吝赐教!感谢!