|
在CUBEMX 生成代码后 调用 if (HAL_I2S_Receive_IT(&hi2s2, adc_buf, 2048) != HAL_OK) { Error_Handler(); } 成功初始化后 不久就进入 void HAL_I2S_ErrorCallback(I2S_HandleTypeDef *hi2s) { if (hi2s == &hi2s2) { printf("I2S Error: %lu\n", hi2s->ErrorCode); } } 错误代码是02 溢出错误(OVR) |
在擦除flash时 同时挂起中断 是否会造成卡死以及相关的卡死机制
在stm32cuide中打不开stm32cubemx
STM32F407VET6,使用cubeIDE下载跑不起来
FLASH擦除轮询等待时CPU真的会轮询吗
STM32F417 RTC读取亚秒寄存器
关于stm32cubeide下载问题
x-cube-ai或ST Edge AI Core有关算子融合的问题
STM32F405ZGT6 批次22+ 问下这颗料,60度烘烤12小时后,出现鼓包,是怎么回事? 原厂有标准的烘烤温度范围 跟时长范围吗?
CubeMX加载X-CUBE-AI库以后 再新建工程进不去mcu选择界面
stm32cubemx的mode and configuration界面里的mode界面加载不出来,请问是什么问题?
微信公众号
手机版
从提示来看, I2S OVR(溢出)错误,表示接收溢出。这通常说明CPU或DMA提取数据的速度跟不上I2S外设接收数据的速度,导致数据还没来得及取走,新的数据又到来了。
参考建议:
检查中断优先级,确保I2S合适的中断优先级,不要总是被打断甚至堵塞。
避免在中断服务程序中执行耗时操作(如printf、复杂计算等),尽量只做数据提取,后续处理放到主循环或其它任务中。
适当降低采样率进行测试,看是否还会溢出。
考虑使用DMA方式接收I2S数据,DMA能自动搬运数据,极大减轻CPU负担,有效避免溢出。