OpenEdv-开源电子网

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

stm32中的gprs模块

[复制链接]

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
发表于 2015-3-9 16:10:45 | 显示全部楼层 |阅读模式
5金钱
原子哥急救,GPRS模块发送数据可以,接送数据也是可以的,但是同时发送接收就出现问题了,接收不到数据了。。。。。。。。。。。。。。

最佳答案

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

回复【10楼】Beans: --------------------------------- 这个应该是一个很简单的功能啊。。。。只要初始化完毕,没有什么需要调试的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-9 16:10:46 | 显示全部楼层
回复【10楼】Beans:
---------------------------------
这个应该是一个很简单的功能啊。。。。只要初始化完毕,没有什么需要调试的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-3-9 22:32:10 | 显示全部楼层
我们例程测试没这个问题哦
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-10 10:40:57 | 显示全部楼层
没代码,不好找原因!
回复

使用道具 举报

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
 楼主| 发表于 2015-3-10 14:55:37 | 显示全部楼层
回复【3楼】fly0000:
---------------------------------
目前问题定时发送心跳包以后,远程向GSM模块发送的数据就接收不到,是不是发送和接受有冲突
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-10 15:06:44 | 显示全部楼层
回复【4楼】Beans:
---------------------------------
发送和接收貌似不会冲突吧,中断优先级不一样就行了。
你把代码贴上来吧。。。
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-10 15:08:59 | 显示全部楼层
回复【4楼】Beans:
---------------------------------
你可以这样模拟,自己下一个socket软件,自己给自己发,一边是串口软件,一般是socket,你就能知道你到底发没发过去。。
回复

使用道具 举报

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
 楼主| 发表于 2015-3-10 15:10:41 | 显示全部楼层
回复【5楼】fly0000:
---------------------------------
void USART2_IRQHandler(void)
{

u8 res;
OSIntEnter(); //进入中断 
  
if(USART2->SR&(1<<5))//接收到数据
{  
res=USART2->DR;
if(res=='^')
{        
  OSSemPost(Sem_Event_gprs); 
res='\0';
}
if(USART2_RX_STA<64) //还可以接收数据
{
TIM4->CNT=0;          //计数器清空
if(USART2_RX_STA==0)TIM4_Set(1);   //使能定时器4的中断 
USART2_RX_BUF[USART2_RX_STA++]=res; //记录接收到的值

}else 
{
USART2_RX_STA|=1<<7;  //强制标记接收完成


          
}  
OSIntExit();        //触发任务切换软中断  




发送心跳包时,连接成功会接受一个ok返回,可是这事同时又向GSM发送数据,接收都是通过这个串口中断
回复

使用道具 举报

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
 楼主| 发表于 2015-3-10 15:18:12 | 显示全部楼层
回复【6楼】fly0000:
---------------------------------
这时候GSM就接收不到我发的数据了,如果没有这个心跳包单独给GSM发送数据是可以接收到的,单独从通过GSM给远程PC送数据也是可以的,只要把发送心跳包加上,远程PC就只能接收心跳包的数据,而GSM接收不到远程PC的数据了
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-10 16:16:22 | 显示全部楼层
回复【8楼】Beans:
---------------------------------
心跳包都是终端给服务器端发送的,用来维持链路通信的,怎么发送心跳包还需要连接成功呢?TCP链接建立成功后,链路通了,才可能发送出去心跳包的,所以,如果链路不通,你怎么可能发送出去心跳包,我没明白你表达的意思。
回复

使用道具 举报

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
 楼主| 发表于 2015-3-10 16:24:33 | 显示全部楼层
回复【9楼】fly0000:
-------------------------------
首先发心跳包的目的是判断是否已建立连接,如果没有,重新建立连接,同时我还有一个人任务接收服务器发来的数据
现在假设就两个任务,一个发送心跳包,一个接收服务器的数据,此时终端发的心跳包数据服务器收的到的,但是服务器向终端发送的收不到了
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2015-3-10 16:33:42 | 显示全部楼层
回复【10楼】Beans:
---------------------------------
这个不应该哦,你不给服务器发,直接用串口精灵给STM32发,能够收到数据?
回复

使用道具 举报

16

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-11-4
在线时间
3 小时
 楼主| 发表于 2015-3-10 16:43:17 | 显示全部楼层
回复【12楼】fly0000:
---------------------------------
谢了哥们,我想我找到问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 12:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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