本帖最后由 hoop 于 2021-3-24 19:18 编辑
使用这个路径demo:BSP\AT32F4xx_StdPeriph_Lib_V1.x.x\Project\AT_START_F403A\Examples\I2S\I2S_FullDuplex\MDK_v5
在void GPIO_Configuration(void)函数内添加如下某一项
if(1)///<select PC6 as MCLK pin
{
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_6;
GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
if(1)///<select PA3 as MCLK pin
{
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA, ENABLE);
GPIO_PinsRemapConfig(AFIO_MAP5_SPI2_0001, ENABLE);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_3;
GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
if(1)///<select PA6 as MCLK pin
{
RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA, ENABLE);
GPIO_PinsRemapConfig(AFIO_MAP5_SPI2_0010, ENABLE);
GPIO_InitStructure.GPIO_Pins = GPIO_Pins_6;
GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
同时再将原I2S_InitStructure.I2S_MCLKOE = I2S_MCLKOE_DISABLE;的参数I2S_MCLKOE_DISABLE修改为I2S_MCLKOE_ENABLE
此时就可以实现I2S2的MCLK输出了。代码中I2S3相关内容,如果你不用的话,直接删除即可
|