各位大虾,最新在使用ucos ii下驱动SIM900模块时不知该怎么处理才能让驱动比较稳定,下面是我想的两种方案及缺点:
1. 与SIM900通信的串口发送和接收使用同一个任务,每发送一条命令后挂起任务等待串口数据更新,然后根据模块回复的内容判断命令执行情况。实际使用时发现,模块有时回复的内容会分好几条报上来,这样会导致命令发送结束后挂起的任务能够继续运行,但是可能因为还有数据没有接收,导致判断错误。如果把挂起的超时时间设的太大,则会在异常情况下需等待太长时间。还有个问题就是某一时刻接收到短信或者模块其他主动发送的信息,此时不知该如何处理。
2. 将接收和发送分两个不用的任务执行。目前还没有想好该怎么处理。
不知各位大虾有没有做过这方面的处理,或者有什么想法。 |