之前应日天兄之邀,制作了一个小教程,但是,因为本人理解错了日天兄的意思,压短了关于程序介绍的部分,因此在此对程序相关的一部分做一下简要的补充(本文请配合视频食用哦)。
配置sai接口是由MCUXpresso进行配置的,有兴趣的可以研究一下。
由于我们之前定义WM8960的MCLK是由RT1010提供,所以我们需要配置相关引脚复用。
相关手册如图;这里需要把第19位配置为1
IOMUXC_GPR->GPR1 |= IOMUXC_GPR_GPR1_SAI1_MCLK_DIR_MASK;
吐吐槽,话说这也不给个函数。。。。
另一个主要函数就是
status_t SAI_TransferSendNonBlocking(I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer);
参数很简单,第一个是选择使用的sai,第二个sai配置的句柄,第三个是需要传输数据的地址与长度。这个可以以非阻塞模式进行音频传输。如果需要判断传输结束可以通过中断。
程序中的延时是必须的,不然就会出现WM8960无法正常播放的问题。
NXP的库还是很完善的,封装也比较合理(再加加油啊,做的更好用一点)。
最后,感谢日天兄。
附上程序工程
阅读全文