Si4432死机,重新复位问题。

2019-08-17 08:26发布

   我用STM32F103驱动Si4432模块,在死机的时候重新初始化模块,就是不行。我的部分程序如下:
每隔2秒检测一下模块是否处于接收状态,如果res=0x21,则模块处于接收状态,否则认为是死机状态。
  if(count==2000)
{
 count=0;
 res = SI4432_ReadReg(0x02);
 printf("res =%02x ",(unsigned short)res );
 if(res!=0x21)
 {
   flag_buffer=1;
 }  
}


在main函数中:
main()
{
 SI4432_SDN_HIGH;
   si4432_reset();             
   si4432_init();

    while(1)
     {
 

              if(flag_buffer==1)
             {
                  flag_buffer=0;
                  SI4432_SDN_HIGH;
                   si4432_reset();
                   si4432_init();
                }
        }

}


void si4432_reset(void)
{
  SI4432_SDN_HIGH;      //拉高模块停止工作
  delay_ms(10);
  SI4432_SDN_LOW;     //拉低模块开始工作
   
}


现象就是,当模块死机后,还是不能重新复位,有谁能解释吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。