当前位置: 技术问答>linux和unix
Linux下串口发送AT指令给短信猫
来源: 互联网 发布时间:2016-10-31
本文导语: 很奇怪的问题,大家帮忙看看: 打开minicom连接到串口后,程序可以发短信(收不了); 关闭minicom不重置串口,收发都正常; 关闭minicom并重置串口(Ctrl-A-Q),收发均失败。 谢谢了。 部分代码: /* ...... */ //打开...
很奇怪的问题,大家帮忙看看:
打开minicom连接到串口后,程序可以发短信(收不了);
关闭minicom不重置串口,收发都正常;
关闭minicom并重置串口(Ctrl-A-Q),收发均失败。
谢谢了。
部分代码:
打开minicom连接到串口后,程序可以发短信(收不了);
关闭minicom不重置串口,收发都正常;
关闭minicom并重置串口(Ctrl-A-Q),收发均失败。
谢谢了。
部分代码:
/* ...... */
//打开串口
_fd = open(dev, O_RDWR|O_NONBLOCK);
//部分设置
bool SerialOperate::setParity()
{
struct termios options;
if(tcgetattr(_fd,&options) != 0)
{
printf("setup serial error: 1n");
return false;
}
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8; //数据位为8
options.c_cflag &= ~PARENB; //无校验位
options.c_iflag &= ~INPCK;
options.c_cflag &= ~CSTOPB; //停止位为1
tcflush(_fd,TCIFLUSH);
options.c_cc[VTIME] = 150; //设置超时15秒
options.c_cc[VMIN] = 0; //立刻更新操作
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); //input
options.c_oflag &= ~OPOST; //output
if(tcsetattr(_fd,TCSANOW,&options) != 0)
{
printf("setup serial error: 2n");
return false;
}
return true;
}
/* ...... */
//写数据
int len = write(_fd, buffer, strlen(buffer));
if(len > 0)
{
printf("%3d = write(%s)n", len, buffer);
}
/* ...... */
//读数据
int len = read(_fd, buffer, length);
if(len > 0)
{
printf("%3d = read(%s)n", len, buffer);
}
/* ...... */
|
你的程序对串口读写,你还有minicom干嘛?程序和minicom同时对串口操作,冲突了,所以关掉minicom就正常了
|
sp
|
你的程序操作 串口, 串口是独占模式打开的。
所以如果要操作短信猫, 你首先肯定要关闭 minicom, 很奇怪,你这里居然可以共存?
另外 _fd = open(dev, O_RDWR|O_NONBLOCK);
O_NONBLOCK 是以非阻塞模式打开设备, 你没有判断打开设备是否成功,这是有问题的。
另外你的问题应该是设置串口有问题, 贴完整代码吧。
所以如果要操作短信猫, 你首先肯定要关闭 minicom, 很奇怪,你这里居然可以共存?
另外 _fd = open(dev, O_RDWR|O_NONBLOCK);
O_NONBLOCK 是以非阻塞模式打开设备, 你没有判断打开设备是否成功,这是有问题的。
另外你的问题应该是设置串口有问题, 贴完整代码吧。
|
感觉还是串口设置的问题,估计和你的短信猫之间不匹配。
你根据你的短信猫对串口通讯的要求仔细检查一下你的串口设置的代码。
你根据你的短信猫对串口通讯的要求仔细检查一下你的串口设置的代码。
|
在命令后面加rn试试看
|
fd=open(devpath,O_RDWR|O_NOCTTY);
这样
这样
|
先试试不要用非阻塞模式。
int fd = open( Dev, O_RDWR| O_NOCTTY |O_FSYNC|O_NDELAY);
int fd = open( Dev, O_RDWR| O_NOCTTY |O_FSYNC|O_NDELAY);
|
不懂 帮顶 可以吗
|
不清楚,知道一个概念,AT命令是收发短信,打电话的,是和手机模块等通信设备通信的