硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2267|回复: 5
收起左侧

SIM800_WaitResponse阻塞问题

[复制链接]

12

主题

36

回帖

72

积分

初级会员

积分
72
发表于 2018-9-14 17:04:56 | 显示全部楼层 |阅读模式
V6例程里的SIM800_WaitResponse函数是阻塞的,目前例程是在while中循环调用bsp_CheckTimer查看是否定时器到了。如果要改成非阻塞,是不是要用UCOS III自带的定时器中单次定时器功能,然后在回调函数中查询是否接收到指定数据和调用查询函数查询是否超时?
回复

使用道具 举报

0

主题

105

回帖

105

积分

初级会员

积分
105
发表于 2018-9-14 20:26:42 | 显示全部楼层
我的建议是改成等待串口中断信号量。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2018-9-14 23:17:55 | 显示全部楼层
这个函数不叫阻塞函数,可以用单次定时器解决。
QQ截图20180914231621.png
回复

使用道具 举报

12

主题

36

回帖

72

积分

初级会员

积分
72
 楼主| 发表于 2018-9-17 14:29:20 | 显示全部楼层
barryxiao 发表于 2018-9-14 20:26
我的建议是改成等待串口中断信号量。

如何在安富莱的例程上修改呢?
回复

使用道具 举报

12

主题

36

回帖

72

积分

初级会员

积分
72
 楼主| 发表于 2018-9-17 14:30:30 | 显示全部楼层
eric2013 发表于 2018-9-14 23:17
这个函数不叫阻塞函数,可以用单次定时器解决。

但是因为在while中调用,bsp_Idle又没有任何处理动作,所以就是死循环,不就阻塞了吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2018-9-17 14:32:11 | 显示全部楼层
dandelion 发表于 2018-9-17 14:30
但是因为在while中调用,bsp_Idle又没有任何处理动作,所以就是死循环,不就阻塞了吗?

这个不属于阻塞了,你在Idle里面做很多操作的。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 04:50 , Processed in 0.042097 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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