1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openLuat-luatos-soc-air101

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
luat_i2s_air101.c 1.5 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
Wendal Chen Отправлено 3 лет назад 7b6359b
#include "luat_base.h"
#include "luat_i2s.h"
#include "wm_include.h"
#include "wm_i2s.h"
#include "wm_gpio_afsel.h"
#define LUAT_LOG_TAG "i2s"
#include "luat_log.h"
int tls_i2s_io_init(void)
{
wm_i2s_ck_config(WM_IO_PB_08);
wm_i2s_ws_config(WM_IO_PB_09);
wm_i2s_di_config(WM_IO_PB_10);
wm_i2s_do_config(WM_IO_PB_11);
LLOGD("ck--PB08, ws--PB09, di--PB10, do--PB11");
return WM_SUCCESS;
}
int luat_i2s_setup(luat_i2s_conf_t *conf) {
// 首先, 配置io复用
tls_i2s_io_init();
// 然后转本地i2s配置
I2S_InitDef opts = { I2S_MODE_MASTER, I2S_CTRL_STEREO, I2S_RIGHT_CHANNEL, I2S_Standard, I2S_DataFormat_16, 8000, 5000000 };
int mode = I2S_MODE_MASTER; // 当前强制master
int stereo = 0;
int format = 0; // i2s
int datawidth = 16;
int freq = 44100;
opts.I2S_Mode_MS = mode;
opts.I2S_Mode_SS = (stereo<<22);
opts.I2S_Mode_LR = I2S_LEFT_CHANNEL;
opts.I2S_Trans_STD = (format*0x1000000);
opts.I2S_DataFormat = (datawidth/8 - 1)*0x10;
opts.I2S_AudioFreq = freq;
opts.I2S_MclkFreq = 80000000;
wm_i2s_port_init(&opts);
wm_i2s_register_callback(NULL);
return 0;
}
int luat_i2s_send(uint8_t id, char* buff, size_t len) {
wm_i2s_tx_int((int16_t *)buff, len / 2, NULL);
return len;
}
int luat_i2s_recv(uint8_t id, char* buff, size_t len) {
wm_i2s_rx_int((int16_t *)buff, len / 2);
return len;
}
int luat_i2s_close(uint8_t id) {
wm_i2s_tx_rx_stop();
return 0;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openLuat-luatos-soc-air101.git
git@gitlife.ru:oschina-mirror/openLuat-luatos-soc-air101.git
oschina-mirror
openLuat-luatos-soc-air101
openLuat-luatos-soc-air101
v0007.air103.v0016