使用c程序将AT命令发送到调制解调器

时间:2015-05-07 04:47:12

标签: c modem

我正在尝试制作一个程序,将AT命令发送到我的PCI内置调制解调器。 我尝试使用以下命令:

ECHO ATDT0445534567898 > COM3

但没有任何反应(COM3是我查找调制解调器属性时显示的串口)

所以我在旧的Borland TurboC 3.0编译器上开发了这个程序:

#include<bios.h>     
#include<stdio.h>    
#include<dos.h>

#define COM1       0
#define COM2       1
#define COM3       2

#define READY 0x100
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)
/*baud 1200 | 7 data bits | no parity | 1 stop bit*/

void main()
{

int status,i,x=17;
char *atcommand="ATDT0445534567898";

     bioscom(0, SETTINGS, COM3);

     status = bioscom(3, 0, COM3);

      if (status & READY)
      {
      for(i=0;i<x;i++)
       {
         bioscom(1, atcommand[i], COM3);
       }
      }
}

再一次,什么也没发生。调试程序,似乎它实际上是将字符逐个发送到该端口但是 没有拨号动作完成。我试过“ATDT0445534567898;” (我的意思是,AT命令的结尾“;”) 它不起作用。

我想让它变得最简单。我在DOS环境下运行它,但它不起作用。 Dos环境来自Windows XP附带的“cmd”DOS仿真程序。 但是我也在旧的MS-DOS OS计算机上运行相同的程序,结果相同。

实际上,据我所知,AT命令完全由调制解调器解释,所以没有软件模块(Windows XP Os或 应该参与调制解调器驱动程序。因此,我认为直接将相应的AT命令发送到调制解调器 应该够了。

调制解调器工作正常,因为使用超级终端完全相同的AT命令。

所以我想知道发生了什么。

0 个答案:

没有答案
相关问题