硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2223|回复: 4
收起左侧

求助:播放音频时,串口接收数据时(中断方式),有时会死机,请教如何解决?谢谢

[复制链接]

0

主题

2

回帖

14

积分

新手上路

积分
14
发表于 2018-4-21 17:17:58 | 显示全部楼层 |阅读模式
音频,采用SAI1 + WM8978。
串口通信,采用中断方式,对方间隔一定时间主动发送几个字节的数据包。
播放音频时,如果对方有数据发送过来,有时会导致本机声音卡顿,甚至可能会死机。

回复

使用道具 举报

0

主题

169

回帖

169

积分

初级会员

积分
169
发表于 2018-4-21 22:29:37 | 显示全部楼层
建议将串口设置为 DMA接受+空闲中断这种方式试试看  
回复

使用道具 举报

0

主题

2

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2018-4-21 23:02:40 | 显示全部楼层
laxsystem01 发表于 2018-4-21 22:29
建议将串口设置为 DMA接受+空闲中断这种方式试试看

谢谢!能具体些吗?空闲中断是指,播放语音时,禁止串口中断,停止播放时再打开中断吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117542
QQ
发表于 2018-4-22 01:55:14 | 显示全部楼层
你的程序框架设计的不好,如果开启了RTOS的话,DMA双缓冲,并专门开启一个任务做音频处理即可。

参考我们的综合Demo,开启了很多中断的。
https://forum.anfulai.cn/forum.p ... &extra=page%3D1

简单些参考提高篇的播放器例子:
https://forum.anfulai.cn/forum.p ... A%C4%A9%B8%A3%C0%FB
回复

使用道具 举报

0

主题

2

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2018-4-22 19:32:32 | 显示全部楼层
eric2013 发表于 2018-4-22 01:55
你的程序框架设计的不好,如果开启了RTOS的话,DMA双缓冲,并专门开启一个任务做音频处理即可。

参考我 ...

谢谢!
没有开启RTOS。
我先学习下你发的资料,有问题再来请教。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 18:31 , Processed in 0.045722 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表