今天遇到个问题,就是F429板子录音的时候,老是死在
SAIA_Init(SAI_MODEMASTER_TX,SAI_CLOCKSTROBING_RISINGEDGE,SAI_DATASIZE_16);//SAI1 Block A,主发送,16位数据
---------------------------------------------------->>>>>>>>
HAL_SAI_DeInit(&SAI1A_Handler); //清除以前的配置
SAI1A_Handler.Instance=SAI1_Block_A; //SAI1 Bock A
SAI1A_Handler.Init.AudioMode=mode; //设置SAI1工作模式
HAL_SAI_DeInit(&SAI1A_Handler); //清除以前的配置
-------------------------------------------------->>>>>>>>>>>>>>>
SAI_Disable(hsai);
-------------------------------------------------->>>>>>>>>>>>>>>
调试界面下 SAI1A_Handler.Instance = NULL;
所以导致 SAI_Disable里面__HAL_SAI_DISABLE(hsai);语句对 SAI1A_Handler.Instance没有失能成功。
然后改成
SAI1A_Handler.Instance=SAI1_Block_A; //SAI1 Bock A
HAL_SAI_DeInit(&SAI1A_Handler); //清除以前的配置
SAI1A_Handler.Init.AudioMode=mode; //设置SAI1工作模式
就ok了。这算不算原子的一个BUG. |