找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2069|回复: 2
打印 上一主题 下一主题
收起左侧

STM32 PWM播放WAV音质不好原因小析

[复制链接]
跳转到指定楼层
楼主
ID:716413 发表于 2020-5-13 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用呼吸灯例程改的WAV音频文件播放,音量大的时候有破音,原因何在?
8000HZ采样率8位音频。
我设置定时器用(计数器自动重装值=125,分频=72),也就是72000000/72/125=8000。
查资料,原来PWM没有自己单独的时钟,而是共用定时器时钟,也就是72000000/72=1000000
这样在每一秒钟8000次的中断中,每一次中断只能得到125个时钟,就是说脉宽只用125个等级,
我们8位音频有250个等级,这就造成了消顶失真。
解决办法是,减少分频,保证定时器计数器自动重装值为256*8000,即是每次计时中断有256个计数。




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:716413 发表于 2020-5-13 20:29 | 只看该作者
        TIM3_CH2_PWM_Init(250,36-1); //72000000/250/36=8000 试了一下,效果很好。
回复

使用道具 举报

板凳
ID:716413 发表于 2020-5-13 20:50 | 只看该作者
        TIM3_CH2_PWM_Init(250,36-1); //72000000/250/36=8000 试了一下,效果很好。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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