- 打卡等级:偶尔看看III
- 打卡总天数:33
- 最近打卡:2026-07-03 08:44:26
已绑定手机
注册会员
- 积分
- 123
|
使用STC32G144K246的IIS做从机接收数据的时候,随机出现数据不对齐问题,表现为上电有时候正常,有时候不正常,都是断电重启后,上电正常后续就都正常,上电不正常,后续就都不正常。 void DMA_I2SR_ISR(void) interrupt DMA_I2SR_VECTOR
{
if (DMA_I2SR_STA & 0x01) // 传输完成中断
{
DMA_I2SR_STA &= 0xfe; // 清中断标志
if (I2SSR & 0x40) // FRE 位
{ // 帧错误,溢出错误,记录或触发一个 GPIO 翻转
P44 = ~P44; //
I2SSR = 0;
}
ready_buffer_index = current_fill_index; // 当前缓冲区填充完成,标记为就绪
current_fill_index ^= 1; // 切换到另一个缓冲区继续填充
I2SR_DMA_Start((u8*)audio_buffer[current_fill_index], I2S_DMA_BUFFER_SIZE);// 重新启动 DMA 传输,填充另一个缓冲区
}
}DMA一直提示帧错误
|
|