关于F429 SAI 初始化流程问题。

2019-07-20 03:28发布

  今天遇到个问题,就是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.



0条回答

一周热门 更多>