野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11163|回复: 2

求助f103的I2S3如何初始化

[复制链接]
发表于 2017-5-5 02:18:14 | 显示全部楼层 |阅读模式
I2S3初始化没有声音
    GPIO_InitTypeDef GPIO_InitStructure;
    /* Enable GPIOB, GPIOC and AFIO clock  | RCC_APB2Periph_AFIO */
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC , ENABLE);
//    GPIO_StructInit(&GPIO_InitStructure);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);

    /* I2S2 SD, CK pins configuration */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_3 ;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
   
        /* I2S2 WS pins configuration */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    /* I2S2 MCK pin configuration */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;   
    GPIO_Init(GPIOC, &GPIO_InitStructure);
   

回复

使用道具 举报

发表于 2017-5-5 08:45:53 | 显示全部楼层
就是这样,再配置下模式就好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 11:48:32 | 显示全部楼层
uint8_t I2Sx_Mode_Config(const uint16_t _usStandard, const uint16_t DataFormat,const uint32_t _usAudioFreq)
{
    I2S_InitTypeDef I2S_InitStructure;

    /* CODEC_I2S peripheral configuration */
    RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI3, ENABLE);

    SPI_I2S_DeInit(I2Sx);
    I2S_InitStructure.I2S_Standard = _usStandard;
    I2S_InitStructure.I2S_CPOL = I2S_CPOL_Low;
    I2S_InitStructure.I2S_Mode = I2S_Mode_MasterTx;
    I2S_InitStructure.I2S_MCLKOutput = I2S_MCLKOutput_Enable;
       
        if(DataFormat==8||DataFormat==16)
        {
                I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_16b;
        }
        else
        if(DataFormat==24)
        {
                I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_24b;
        }
        else
        if(DataFormat==32)
        {
                I2S_InitStructure.I2S_DataFormat = I2S_DataFormat_32b;
        }
        else
                return 1;//not support
        if(_usAudioFreq==I2S_AudioFreq_8k||_usAudioFreq==I2S_AudioFreq_11k||
                        _usAudioFreq==I2S_AudioFreq_16k||_usAudioFreq==I2S_AudioFreq_22k||
                                _usAudioFreq==I2S_AudioFreq_32k||_usAudioFreq==I2S_AudioFreq_44k||
                                        _usAudioFreq==I2S_AudioFreq_48k||_usAudioFreq==I2S_AudioFreq_96k)
                I2S_InitStructure.I2S_AudioFreq = _usAudioFreq;
        else
                return 2;

    /* Initialize the I2S peripheral with the structure above */
    I2S_Init(SPI3, &I2S_InitStructure);
                I2S_Cmd(SPI3, ENABLE);
                return 0;
}

我这样配置可是没有声音啊,大哥帮我看看吧!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 01:45 , Processed in 0.033745 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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