使用AT命令集控制TC35i时对URC的处理

URC是Unsolicited Result Code,即"非请求结果码"。一般的AT命令流程都是控制端发出命令,被控端响应结果码。但当被控端有事件需要通知控制端时,就会主动发出URC,例如有呼叫打入、收到新短信息、自动关机等。另一方面,TC35i对AT命令的响应结果可能有多行,各个命令都不同,没有一个统一的机制可以确切得知命令响应完成,加上URC,使得处理比较困难。 MC55的建议是启用回响(ATE1),当控制端发出"AT",并收到"A"的回响开始,到命令响应结束,这段期间不会发出URC。而且控制端应该在各个AT命令后等待至少100ms,以让TC35i有发出URC的机会。 处理的思路是,用一对函数将命令处理的"安全期"保护起来,以防止漏掉URC或被URC干扰程序。在开始AT命令时,先调用BeginATCommand()函数。BeginATCommand()函数先发出"AT"字符到TC35i,然后读取输入缓冲的每一行,如果有URC则放入URC队列,直到输入缓冲为空而超时,最后读入的字符应该就是"AT"的回响,这时候就进入了"安全期",可以继续发送后续的命令。命令完成后,再调用EndATCommand()函数,EndATCommand()函数负责把输入缓冲剩余的字符清空。同样读取输入缓冲的每一行,如果有URC则放入URC队列,直到输入缓冲为空而超时,清理完毕。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值