前景提要
我用的是搭载stm32h563zit6的开发板,型号为nucleo-h563zi,今天在调试i2s1接受通过dma读取时发现一个问题,HAL_I2S_RxCpltCallback函数被正常调用,但是buffer里面的值都是0,百思不得其解。
最终结论
在STM32CubeMX Version: 6.10.0-RC9 这个版本中,在i2s作为slave的模式下,官方错误将pa7 生成为pa6 在此需要注意
后续更新:可以通过使用寄存器交换,来解决io口不匹配的问题,代码如下:
MODIFY_REG(hi2s2.Instance->CFG2, SPI_CFG2_IOSWP, SPI_CFG2_IOSWP);