WEB开发网
开发学院软件开发VC “通过串口收发短消息”的Q&A汇编 阅读

“通过串口收发短消息”的Q&A汇编

 2006-07-21 11:13:04 来源:WEB开发网   
核心提示: Nokia手机本身没有带modem功能,用专业术语讲就是不具备TA(Terminal Adapter)接口,“通过串口收发短消息”的Q&A汇编(4),需要驱动转换,不管是真的串口,这里的ReadComm函数是读返回的这个字符串还是其中的单个字符或不完全的字符串?请问超时控制设多少最合适啊?

Nokia手机本身没有带modem功能,用专业术语讲就是不具备TA(Terminal Adapter)接口,需要驱动转换,不管是真的串口,USB还是红外接口,反正它能虚拟出"标准MODEM"串口来。AT命令只能用标准异步通信。

在我的印象中,Nokia 8210需用红外线接口同PC通信。估计你装的那个驱动是IR->COM转换的,而不是驱动串口数据线的,可能你的电脑没有红外接口,所以com3也连不上?

要试(虚拟)串口是否连接正确,很简单,用windows自带的"超级终端"在特定虚拟端口连上,敲个"AT"回车,看有没有反应,正确回答应该是"OK"。

Nokia数据线上跑的是"Nokia语"- Nokia专有协议的数据,不是通用/扩展的AT命令集。LogoManager能听、能说"Nokia语",所以不需要安装驱动就能工作。Nokia有一个免费的"Nokia PC Connectivity SDK",可供开发Nokia手机使用。至于LogoManager是不是用的这个开发包,那就不得而知了。

在SmsTest中,发出AT命令,然后接收应答,比如

WriteComm("AT+CMGF=0\r", 10);
ReadComm(ans, 128);

在WriteComm函数后接着就调用ReadComm,是不是太急,这里的ReadComm函数是读返回的这个字符串还是其中的单个字符或不完全的字符串?请问超时控制设多少最合适啊?

关于读串口,程序中是这样设定超时控制的:

COMMTIMEOUTS timeouts = { // 串口超时控制参数
    100,    // 读字符间隔超时时间: 100 ms
    1,     // 读操作时每字符的时间: 1 ms (n个字符总共为n ms)
    500,    // 基本的(额外的)读超时时间: 500 ms
    1,     // 写操作时每字符的时间: 1 ms (n个字符总共为n ms)
    100};    // 基本的(额外的)写超时时间: 100 ms
  • ReadComm什么时候返回呢?按此timeout设定,若n=128(ReadComm的第二个参数),则

    上一页  1 2 3 4 5  下一页

Tags:通过 串口 收发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接