OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3619|回复: 5

串口3与SIM800C的通讯函数怎么改也不对啊

[复制链接]

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-6-12
在线时间
14 小时
发表于 2018-7-10 11:14:20 | 显示全部楼层 |阅读模式
20金钱
谁能帮我写一下串口3与SIM800C的通讯函数啊,就是串口3的发送与接受,发给模块AT指令,接受模块的反馈并判断,参考历程改了几天也不对!!!
u8* sim800c_check_cmd(u8 *str)
{

最佳答案

查看完整内容[请看2#楼]

已经解决了,串口函数不用动,正确开关中断就好了,需要程序体现
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-6-12
在线时间
14 小时
 楼主| 发表于 2018-7-10 11:14:21 | 显示全部楼层
SeeMe 发表于 2018-7-11 19:24
如果你用的原子哥的sim800c_send_cmd函数来发送指令的话,你的串口3的中断函数最好不要改,否则你会收不到 ...

已经解决了,串口函数不用动,正确开关中断就好了,需要程序体现
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-6-12
在线时间
14 小时
 楼主| 发表于 2018-7-10 11:14:36 | 显示全部楼层
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é&#207;ò&#187;′&#206;êy&#190;Y·¢&#203;ííê3é  
                USART3->DR=(u32)cmd;
        }else
        u3_printf("%s\r\n",cmd);//·¢&#203;í&#195;üá&#238;
        while(--waittime)        //μè′yμ1&#188;&#198;ê±
                {
                        delay_ms(10);               
                        if(sim800c_check_cmd(ack))
                        break;
                        USART3_RX_STA=0;               
                }
                if(waittime==0)
                res=1;
        return res;
}
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2018-6-12
在线时间
14 小时
 楼主| 发表于 2018-7-10 11:14:50 | 显示全部楼层
参考下面历程!!1
回复

使用道具 举报

3

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
431
金钱
431
注册时间
2016-10-20
在线时间
147 小时
发表于 2018-7-11 19:24:23 | 显示全部楼层
如果你用的原子哥的sim800c_send_cmd函数来发送指令的话,你的串口3的中断函数最好不要改,否则你会收不到模块返回的信息。
你最好将原子哥串口中断那一章看一遍吧
we can't stop
回复

使用道具 举报

6

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2018-7-7
在线时间
13 小时
发表于 2018-7-19 09:56:53 | 显示全部楼层
分享解决GPRS模块SIM800c连接不到服务器问题方法
http://www.openedv.com/forum.php ... d=274554&extra=
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表