打印
[STM32F1]

printf的愚蠢问题

[复制链接]
891|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用的是STM32F103VET6 + SIM900A的GPRS板子,自己写点程序。目的是只有我自己的手机号给板子打电话才能接听,否则则挂断。  代码大致如下:   经过测试发现,只有第一次拨号,无论是不是本机号码,printf("call is coming, phone is %s\r\n", call_info.source_phone);都可以正确打印来电号码。 但第二次再拨打,绝对是保存不了,内容是空。  我为了找问题,再以下四个注释的地方,加入了printf("1,2,3,4\r\n");.......结果就正确了,每次电话号码都可以显示。但一去,就又不行了。这有影响吗?

        /**************************电话部分*************************************/
                        if(strstr((const char*)USART2_RX_BUF, "+CLIP:")) //有电话呼入
                        {
                                len = 0;
                                memset(call_info.source_phone, 0, 14);
                                for(i = 0; i < USART2_Recv_Len; i++)
                                {
                                       
                                         printf(“1\r\n”);
                                         if((start_flag != 1) && (USART2_RX_BUF[i] == 0x22))  // " 是 0x22
                                        {
                                               
                                                printf(“2\r\n”);
                                                start_flag = 1;           //第一次收到"作为开始标志
                                                continue;               
                                        }
                                        if(start_flag == 1)
                                        {
                                                if(USART2_RX_BUF[i] != 0x22)
                                                {
                                                       
                                                   printf(“3\r\n”);
                                                 call_info.source_phone[len++] = USART2_RX_BUF[i];       
                                                }
                                                else
                                                {
                                                          printf(“4\r\n”);
                                                        start_flag = 0;
                                                        break;
                                                }
                                        }                               
                                }
                                printf("call is coming, phone is %s\r\n", call_info.source_phone);
                                if(strcmp(call_info.source_phone, "1XXXXXXXX") == 0)    //电话号码滤去
                                {
                                        if(gprs_send_cmd("ATA\r\n","OK",1500))                //接听来电
                                        {
                                                printf("answer phone call success\r\n");
                                        }
                                        else
                                        {
                                                printf("answer phone call failed\r\n");
                                        }                               
                                }
                                else
                                {
                                        if(gprs_send_cmd("ATH\r\n","OK",1500))                //拒接来电
                                        {
                                                printf("refuse phone call success\r\n");
                                        }
                                        else
                                        {
                                                printf("refuse phone call failed\r\n");
                                        }                                                               
                                }
                                memset(USART2_RX_BUF, 0, USART2_MAX_RECV_LEN);
                                USART2_Recv_Len = 0;
                                Rec_Over_Flag2 = 0;
                                start_flag = 0;                                       
                        }

X_PIM(U7}JQ}S6}LDU4}YUL.png (31.74 KB )

X_PIM(U7}JQ}S6}LDU4}YUL.png
沙发
lqab1983|  楼主 | 2015-1-21 22:17 | 只看该作者
这个问题确实很奇怪,甚至都是无稽之谈,但是又遇到过的吗

使用特权

评论回复
板凳
jar1866| | 2015-1-23 17:26 | 只看该作者
定义fputc重定向输出流的方式是阻塞的,是否这个影响到了呢

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
lqab1983 + 3 赞一个!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

53

帖子

0

粉丝