天线|RF射频
直播中

邹凌云

8年用户 166经验值
私信 关注
[问答]

请问串口3与SIM800C的通讯函数怎么写?

谁能帮我写一下串口3与SIM800C的通讯函数啊,就是串口3的发送与接受,发给模块AT指令,接受模块的反馈并判断,参考历程改了几天也不对!!!
u8* sim800c_check_cmd(u8 *str)
{

回帖(2)

余彦

2019-5-22 10:09:47
u8* sim800c_check_cmd(u8 *str)
{
        char *strx=0;
        if(USART3_RX_STA&0X8000)                //½óêÕμ½ò»′Îêy¾YáË
        {
                USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//ìí¼ó½áêø·û
                strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
        }        
        return (u8*)strx;
}
u8 sim800c_send_cmd(u8 *cmd,u8 *ack,u16 waittime)   //03é1|1ê§°ü
{
        u8 res=0;
        USART3_RX_STA=0;
        if((u32)cmd<=0XFF)
        {
                while((USART3->SR&0X40)==0);//μè′yéÏò»′Îêy¾Y·¢Ëííê3é  
                USART3->DR=(u32)cmd;
        }else
        u3_printf("%srn",cmd);//·¢ËíÃüáî
        while(--waittime)        //μè′yμ1¼Æê±
                {
                        delay_ms(10);               
                        if(sim800c_check_cmd(ack))
                        break;
                        USART3_RX_STA=0;               
                }
                if(waittime==0)
                res=1;
        return res;
}
举报

崔业萍

2019-5-22 10:22:50
如果你用的原子哥的sim800c_send_cmd函数来发送指令的话,你的串口3的中断函数最好不要改,否则你会收不到模块返回的信息。
你最好将原子哥串口中断那一章看一遍吧
举报

更多回帖

发帖
×
20
完善资料,
赚取积分