野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9710|回复: 5

求一份F429hal库音频播放例子

[复制链接]
发表于 2017-9-5 13:46:06 | 显示全部楼层 |阅读模式
最近搞音频,发现总是用HAL实现不了,希望大神分享一下例程,
回复

使用道具 举报

发表于 2017-9-5 13:48:23 | 显示全部楼层
目前只有标准库的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 14:29:16 | 显示全部楼层
void BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
{
  RCC_PeriphCLKInitTypeDef RCC_ExCLKInitStruct;

  HAL_RCCEx_GetPeriphCLKConfig(&RCC_ExCLKInitStruct);
  
  /* Set the PLL configuration according to the audio frequency */
  if((AudioFreq == I2S_AUDIOFREQ_11K) || (AudioFreq == I2S_AUDIOFREQ_22K) || (AudioFreq == I2S_AUDIOFREQ_44K))
  {
    /* Configure PLLSAI prescalers */
    /* PLLI2S_VCO: VCO_429M
    SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 316/7 = 45 Mhz
    SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 45/4 = 11.25 Mhz */
    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
    RCC_ExCLKInitStruct.Sai2ClockSelection = RCC_I2SCLKSOURCE_PLLI2S;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SP = 0;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = 316;
                RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = 7;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SQ = 4;
    RCC_ExCLKInitStruct.PLLI2SDivQ = 1;
    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct);
  }
  else /* AUDIO_FREQUENCY_8K, AUDIO_FREQUENCY_16K, AUDIO_FREQUENCY_48K), AUDIO_FREQUENCY_96K */
  {
    /* SAI clock config
    PLLI2S_VCO: VCO_344M
    SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 344/7 = 49.142 Mhz
    SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 49.142/1 = 49.142 Mhz */
    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
    RCC_ExCLKInitStruct.Sai2ClockSelection = RCC_I2SCLKSOURCE_PLLI2S;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SP = 0;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = 344;
                RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = 7;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SQ = 1;
    RCC_ExCLKInitStruct.PLLI2SDivQ = 1;
    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct);
  }
}
火哥,这个函数在746里面有什么作用????移植过来发现这个函数不通?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 14:30:11 | 显示全部楼层
fire 发表于 2017-9-5 13:48
目前只有标准库的

void BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
{
  RCC_PeriphCLKInitTypeDef RCC_ExCLKInitStruct;

  HAL_RCCEx_GetPeriphCLKConfig(&RCC_ExCLKInitStruct);
  
  /* Set the PLL configuration according to the audio frequency */
  if((AudioFreq == I2S_AUDIOFREQ_11K) || (AudioFreq == I2S_AUDIOFREQ_22K) || (AudioFreq == I2S_AUDIOFREQ_44K))
  {
    /* Configure PLLSAI prescalers */
    /* PLLI2S_VCO: VCO_429M
    SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 316/7 = 45 Mhz
    SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 45/4 = 11.25 Mhz */
    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
    RCC_ExCLKInitStruct.Sai2ClockSelection = RCC_I2SCLKSOURCE_PLLI2S;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SP = 0;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = 316;
                RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = 7;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SQ = 4;
    RCC_ExCLKInitStruct.PLLI2SDivQ = 1;
    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct);
  }
  else /* AUDIO_FREQUENCY_8K, AUDIO_FREQUENCY_16K, AUDIO_FREQUENCY_48K), AUDIO_FREQUENCY_96K */
  {
    /* SAI clock config
    PLLI2S_VCO: VCO_344M
    SAI_CLK(first level) = PLLI2S_VCO/PLLSAIQ = 344/7 = 49.142 Mhz
    SAI_CLK_x = SAI_CLK(first level)/PLLI2SDivQ = 49.142/1 = 49.142 Mhz */
    RCC_ExCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2S;
    RCC_ExCLKInitStruct.Sai2ClockSelection = RCC_I2SCLKSOURCE_PLLI2S;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SP = 0;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SN = 344;
                RCC_ExCLKInitStruct.PLLI2S.PLLI2SR = 7;
    RCC_ExCLKInitStruct.PLLI2S.PLLI2SQ = 1;
    RCC_ExCLKInitStruct.PLLI2SDivQ = 1;
    HAL_RCCEx_PeriphCLKConfig(&RCC_ExCLKInitStruct);
  }
}

这个函数是746里面的,能不能移植到429里面呢???
回复 支持 反对

使用道具 举报

发表于 2017-9-5 14:39:22 | 显示全部楼层
zb_木杉 发表于 2017-9-5 14:30
void BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
{
  RC ...

你最好花点时间把程序读懂,然后再移植。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 14:44:44 | 显示全部楼层
fire 发表于 2017-9-5 14:39
你最好花点时间把程序读懂,然后再移植。

好的。谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 17:18 , Processed in 0.029390 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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