OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3433|回复: 1

原子哥的STM32H7例程WAV音频播放,设置采样率后主频变慢

[复制链接]

37

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2016-7-3
在线时间
87 小时
发表于 2020-9-24 11:01:09 | 显示全部楼层 |阅读模式
10金钱
原子哥的STM32H7例程WAV音频播放,设置采样率后主频变慢,刷图片很慢很慢,不设置音频采样率,刷图片就正常。下面是设置采样率函数
u8 SAIA_SampleRate_Set(u32 samplerate)
{   
    u8 i=0;   
    RCC_PeriphCLKInitTypeDef RCCSAI1_Sture;
       
        for(i=0;i<(sizeof(SAI_PSC_TBL)/10);i++)//看看改采样率是否可以支持
        {
                if((samplerate/10)==SAI_PSC_TBL[i][0])break;
        }
    if(i==(sizeof(SAI_PSC_TBL)/10))return 1;//搜遍了也找不到
       
        RCCSAI1_Sture.PeriphClockSelection=RCC_PERIPHCLK_SAI1;
        RCCSAI1_Sture.Sai1ClockSelection=RCC_SAI1CLKSOURCE_PLL2;
        RCCSAI1_Sture.PLL2.PLL2M=25;
        RCCSAI1_Sture.PLL2.PLL2N=(u32)SAI_PSC_TBL[i][1];
        RCCSAI1_Sture.PLL2.PLL2P=(u32)SAI_PSC_TBL[i][2];
        HAL_RCCEx_PeriphCLKConfig(&RCCSAI1_Sture);                   // 、、初始化它会系统会变慢

    __HAL_SAI_DISABLE(&SAI1A_Handler);                          //关闭SAI
    SAI1A_Handler.Init.AudioFrequency=samplerate;               //设置播放频率  
    HAL_SAI_Init(&SAI1A_Handler);                               //初始化SAI
    SAIA_DMA_Enable();                                          //开启SAI的DMA功能
    __HAL_SAI_ENABLE(&SAI1A_Handler);                           //开启SAI
    return 0;
}

,只要调用它,主频就变慢了,刷图片比平时慢了好几倍。

最佳答案

查看完整内容[请看2#楼]

已经解决了,是主时钟设置问题,可能主时钟和SAI都用了PLL2 ,导致了这个问题,直接修改下系统时钟就可以了。希望可以帮助到其他人
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

37

主题

143

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2016-7-3
在线时间
87 小时
 楼主| 发表于 2020-9-24 11:01:10 | 显示全部楼层
已经解决了,是主时钟设置问题,可能主时钟和SAI都用了PLL2 ,导致了这个问题,直接修改下系统时钟就可以了。希望可以帮助到其他人
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 21:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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