初级会员

- 积分
- 155
- 金钱
- 155
- 注册时间
- 2016-7-24
- 在线时间
- 49 小时
|
我最近做一个联网的项目,需要SIM900返回数值,但按照原子哥的程序来写时,发图片分包后没有返回数据,而我在中断里面输出 printf(“%s”,res)后,USART3_RX_BUF又有数据更新而且数据是对的了,不知道是什么原因,求大虾们解答。
void USART3_IRQHandler(void)
{
u8 res;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
{
res =USART_ReceiveData(USART3);
if((USART3_RX_STA&(1<<15))==0)//接收完的一批数据,还没有被处理,则不再接收其他数据
{
if(USART3_RX_STA<USART3_MAX_RECV_LEN) //还可以接收数据
{
TIM_SetCounter(TIM7,0);//计数器清空 //计数器清空
if(USART3_RX_STA==0) //使能定时器7的中断
{
TIM_Cmd(TIM7,ENABLE);//使能定时器7
}
USART3_RX_BUF[USART3_RX_STA++]=res; //记录接收到的值
}else
{
USART3_RX_STA|=1<<15; //强制标记接收完成
}
}
}
}
|
|