之前應(yīng)日天兄之邀,制作了一個(gè)小教程,但是,因?yàn)楸救死斫忮e(cuò)了日天兄的意思,壓短了關(guān)于程序介紹的部分,因此在此對程序相關(guān)的一部分做一下簡要的補(bǔ)充(本文請配合視頻食用哦)。
配置sai接口是由MCUXpresso進(jìn)行配置的,有興趣的可以研究一下。
由于我們之前定義WM8960的MCLK是由RT1010提供,所以我們需要配置相關(guān)引腳復(fù)用。
相關(guān)手冊如圖;這里需要把第19位配置為1
IOMUXC_GPR->GPR1 |= IOMUXC_GPR_GPR1_SAI1_MCLK_DIR_MASK;
吐吐槽,話說這也不給個(gè)函數(shù)。。。。
另一個(gè)主要函數(shù)就是
status_t SAI_TransferSendNonBlocking(I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer);
參數(shù)很簡單,第一個(gè)是選擇使用的sai,第二個(gè)sai配置的句柄,第三個(gè)是需要傳輸數(shù)據(jù)的地址與長度。這個(gè)可以以非阻塞模式進(jìn)行音頻傳輸。如果需要判斷傳輸結(jié)束可以通過中斷。
程序中的延時(shí)是必須的,不然就會(huì)出現(xiàn)WM8960無法正常播放的問題。
NXP的庫還是很完善的,封裝也比較合理(再加加油啊,做的更好用一點(diǎn))。
最后,感謝日天兄。
附上程序工程