I2S

w801编译sdk_1.00.08固件,运行t-i2s会卡死

发布于 2022-09-20 13:46:12

在测试I2S时,我改动wm_demo.h,只留下i2s相关的命令。

执行以下命令,使能I2S相关的引脚、使能I2S外设时钟:

t-i2sioinit

执行以下命令,启动I2S发送,进行简单测试代码(最后一个参数=0走中断,=1走DMA):

t-i2s=(0,1,44100,16,0,0)

串口调试工具结果如下:

image.png

t-i2s命令对应于demo/wm_i2s_demo.c文件里的tls_i2s_demo函数。

结合串口工具分析发现,它调用 tls_i2s_tx_int_demo();函数完成数据发送,因为我在它之前加了个printf("i2s tx int.n");函数。它执行完确实会打印send:xxx的信息。

在tls_i2s_tx_int_demo函数的结尾,对于中断,会执行收发关闭操作。代码如下:

if (WM_I2S_MODE_INT == mode)
{
    wm_i2s_tx_rx_stop();
        tls_dma_free(tx_channel);
            tls_dma_stop(ch);
        tls_dma_free(rx_channel);
    printf("\ntest done.\n");
}
    
经过调试发现,卡死在tls_dma_free()函数。如果只开启中断,那就没有打开DMA。那么为什么要释放DMA?在DMA stop函数里,忙等DMA是否结束。然后一直卡死!你们也有这个问题吗。请进行检查。还是只有我这样。
    
    

查看更多

关注者
0
被浏览
2k
isme
isme 认证专家 2022-09-21
冰镇大西瓜

两种方式我都测试过了,波形都有出来呀。
image.png
image.png

3 个回答
ZYQ
ZYQ 2022-09-20
我已不再支持W80X任何相关问题的回复,请大家不要私信,有问题找 isme 谢谢

你确认是1.08固件么
image.png

haoronMango
haoronMango 2022-09-21
This guy hasn't written anything yet

WM-W800-SDK-202207-V1.00.08.rar

我用的是这个固件,是从本网页,单击资料下载按钮,然后下载的。你们也试试,看看。是我板子的问题。还是我操作方法不对。

然后我把tls_dma_free(tx_channel);tls_dma_free(rx_channel);注释了,它就不卡死了。

真的,骗你是小狗!

111.webp

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览