|

楼主 |
发表于 2025-7-6 15:17:09
|
显示全部楼层
我用示波器测量IIS几个引脚 PCM_SHORT格式下,mclk 1.024MHz clk是8.12Khz、ws是8.004Khz,和理论值基本一致
uint16_t pcm_single[OLED_PCM_SIZE/4] __attribute((section(".ARM._at_0x24000000")));
/*初始化*/
v = wm8978_Init();
wm8978_SetMicGain(50);
wm8978_SetLineGain(4);
wm8978_CfgAudioIF(I2S_STANDARD_PCM_SHORT, 16);
wm8978_CfgAudioPath(LINE_ON| ADC_ON, EAR_LEFT_ON|DAC_ON);
wm8978_CfgAudioPath(LINE_ON|MIC_LEFT_ON|MIC_RIGHT_ON| ADC_ON, EAR_LEFT_ON | EAR_RIGHT_ON);
MX_I2S3_Init();
/*callback*/
void HAL_I2S_RxCpltCallback(I2S_HandleTypeDef *hi2s)
{
if(hi2s->Instance == SPI3)
{
current_buf_flag = pcm_buf_flag;
pcm_buf_flag = !pcm_buf_flag;
ok = 1;
HAL_I2S_Receive_DMA(&hi2s3, pcm_data[pcm_buf_flag], OLED_PCM_SIZE/2);
}
}
/*main while*/
while (1)
{
if(ok)
{
ok = 0;
HAL_UART_Transmit_IT(&huart5,(uint8_t*)pcm_data[current_buf_flag],8240);
}
}
/*MPU*/
void MPU_Config(void)
{
HAL_MPU_Disable();
}
请问能看出来哪里可能有问题吗? |
|