OpenEdv-开源电子网

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

sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)中waittime减到0不会跳出while,跳出之后res=1了,就返回失败了。

[复制链接]

69

主题

269

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2014-7-4
在线时间
237 小时
发表于 2015-4-28 16:26:09 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime) { u8 res=0; USART2_RX_STA=0; if((u32)cmd<=0XFF) { while(DMA1_Channel7->CNDTR!=0); //?????¨??7?????ê?? USART2->DR=(u32)cmd; }else u2_printf("%s\r\n",cmd);//·????ü?? if(ack&&waittime) //?è?????????? { while(--waittime) //?????????± { delay_ms(10); if(USART2_RX_STA&0X8000)//?????????????????á?? { if(sim900a_check_cmd(ack))break;//???????§???? USART2_RX_STA=0; } } if(waittime==0)res=1; } return res; } [/mw_shl_code]
sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)中waittime减到0不会跳出while,跳出之后res=1了,就返回失败了。难道waittim有点矛盾吧     还有就是我看程序里是不管收不收得到应答都会消耗waittime*10ms,难道waittime不是0就能跳出while

最佳答案

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

等待时间内   没有收到数据  就返回 接收失败 等待时间内     收到数据就跳出循环
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5141
金钱
5141
注册时间
2014-8-26
在线时间
1317 小时
发表于 2015-4-28 16:26:10 | 显示全部楼层
等待时间内   没有收到数据  就返回 接收失败
等待时间内     收到数据就跳出循环
回复

使用道具 举报

3

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2012-10-6
在线时间
100 小时
发表于 2015-9-10 15:29:43 | 显示全部楼层
*ack(应答结果) 何时 传到USART3_RX_BUF[]中的  一直没看出来
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 11:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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