代码是:
hsai_BlockB2.InterruptServiceRou
tine = fifoReqCallback;
void fifoReqCallback(SAI_HandleTypeDef *hsai)
{
如果(hsai->Instance = SAI2_Block_B)
{
HAL_GPIO_TogglePin(test_GPIO_Port, test_Pin);
}
HAL_SAI_Receive_DMA(&hsai_BlockB2, (uint8_t*)&noisebuf[0], BLOCK_SIZE*3);
__HAL_SAI_ENABLE_IT(&hsai_BlockB2,SAI_IT_FREQ);
HAL_延迟(5);
结果是:很多fifo请求中断,阻止循环执行。
我还知道数据表警告:“设置此位时,如果设置了 SAI_xSR 寄存器中的 FREQ 位,则会生成中断。由于音频模块默认在复位后作为发送器运行,因此必须在设置 FREQIE 之前配置 MODE 位以避免接收器模式下的寄生中断”。我认为这很遗憾地意味着在应收账款中你不能从 Tx 模式下的 fifo 请求中断中受益。