请问我这个关于I2S外设的gpio引脚复用成功了吗,I2S_sclk引脚一直是低电平,串口一直打印“[Error] Read Failed: ffffffff”,里面有我的相关代码,请大佬解惑,感谢感谢

Viewed 32

一、描述你遇到的问题

我想使用星闪开发板的I2S外设接INMP441麦克风,然后通过串口打印麦克风发来的信号。但是我代码和接线都完成后烧录发现串口一直打印:“[Error] Read Failed: ffffffff”。而我的串口打印函数是:
“ ret = uapi_i2s_merge_read_by_dma(I2S_BUS_ID, rx_buffer, READ_BUF_LEN, &dma_cfg, 0, true);
if (ret == ERRCODE_SUCC) {
uint32_t volume = calculate_volume(rx_buffer, READ_BUF_LEN);
osal_printk("MIC Vol: %d\r\n", volume);}
else {
osal_printk("[Error] Read Failed: %x\r\n", ret);
osDelay(1000);
}
osDelay(50);”
所以根据打印结果来看我猜测是:1,星闪gpio关于I2S口的复用出错了。2,星闪作为I2S协议的主机没有发出时钟信号(晶振没有起震),但这两种可能我代码里都配置好了,实在不知道是哪里出了问题

我用万用表测了一下电平,gpio10(I2S_SCLK)一直为0v,gpio11(I2S_LRCLK)、gpio12(I2S_DI)为3.1伏,所以我觉得最大问题还是时钟引脚或者时钟信号的问题
硬件都是正常的没有损坏

二、你具体做的所有步骤结果截图

这是我的系统配置,除了展开的其他都保持系统默认


这是我实现上述所说功能的代码‘



三、当前开发板状态全景照片



四、开发板串口所有日志

这是串口打印情况

1 Answers

可以先用I2S的测试程序去测试I2S_sclk引脚是否有时钟信号

先前用万用表测试过了,I2S_sclk引脚没有电平,应该是没有时钟信号