MDK中调试C程序用到printf函数,直接写出如下代码,但是出现警告提示如下图,大概意思是printf函数中参数的格式错误,会有潜在的风险!

原始代码:

void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) //溢出中断
    {

            EC20TimersDisable();
            eRcvState=1;
            sprintf(pstr,"接收完成=%s\r\n",AtRxBuffer);
            printf (pstr);

    }
    TIM_ClearITPendingBit(TIM2,TIM_IT_Update);  //清除中断标志位
}

修改之后的代码: 

void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET) //溢出中断
    {

			EC20TimersDisable();
			eRcvState=1;
			sprintf(pstr,"接收完成=%s\r\n",AtRxBuffer);
			printf ("%s",pstr);
            //printf("接收完成=%s\r\n",AtRxBuffer);//也正确
    }
    TIM_ClearITPendingBit(TIM2,TIM_IT_Update);  //清除中断标志位
}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐