天嵌 ARM开发社区

 找回密码
 注册
查看: 2747|回复: 5

请教一下,GSM模块接TQ2440发短信的问题

[复制链接]
rqmini 发表于 2010-12-20 10:22:48 | 显示全部楼层 |阅读模式
RT——代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#define UART0_DEV "/dev/ttyS0"

int msg_send(int fd)
{
int ret;
//char msg[]=;

        if(ret = write(fd,"AT+CMGF?\r",9) < 0)
        {       
                sleep(1);
                printf("1 write error\n");
        }
        printf("1 write OK\n");
        if(ret = write(fd,"AT+CMGF=0\r",10) < 0)
        {
                printf("11 write error\n");
        }
                sleep(1);
        printf("2 write OK\n");
        if(ret = write(fd,"AT+CMGS=67\r",11) < 0)
        {
                printf("2 write error\n");
        }
                sleep(1);
        printf("3 write OK\n");
        if(ret = write(fd,"0891683108703305F011000D91688109373308F50008903460A876848D3591CD726954C188AB4EBA53D68D70FF0C8BF753CA65F6786E8BA453BB5411FF0C4EE596324E2259313002000D000A",152) < 0 )        {
                printf("3 write error\n");
        }

        printf("4 write OK\n");
if(ret = write(fd,"\x1a",1) < 0)
        {
                printf("4 write error\n");
        }
                sleep(1);
        printf("5 write OK\n");
}

int main(int argc, char *argv[])
{

struct termios old,newter;  
     int fd;
     fd = open(UART0_DEV,O_RDWR|O_NOCTTY);
     if (fd<0){
        printf("open %s error!\n",UART0_DEV);
        exit(1);
    }
        printf("open %s OK!major is %d\n",UART0_DEV,fd);
//--------------------initialization----------------------------//  
        tcgetattr(fd,&old);//从fd取出信息,先保存在old中
        memcpy(&newter,&old,sizeof(struct termios));//old的信息拷贝到newter中
        cfmakeraw(&newter);
        newter.c_cc[VTIME]=0;
        newter.c_cc[VMIN]=0;
        cfsetispeed(&newter,B9600);//设置输入,输出 波特率
        cfsetospeed(&newter,B9600);
        tcflush(fd,TCIFLUSH);
        if( (tcsetattr(fd,TCSANOW,&newter))!=0)
        {printf("write error\n");}
        printf("OK\n");
       
        msg_send(fd);
}


问题:
在PC机连接GSM时可以发送短信,但是改为开发板连接GSM就不行了,当然代码中/dev/ttyS0改为了/dev/tq2440_serial0,还有/etc/inittab中tq2440_serial0::askfirst:-/bin/sh没改。
为什么不行了?

顺便提下/dev/tq2440_serial1,/dev/tq2440_serial2可以不用到吧??
 楼主| rqmini 发表于 2010-12-20 12:17:08 | 显示全部楼层
自己顶下,搜索论坛没有相关GSM的信息啊。

哪个大哥帮帮忙。
天嵌_support1 发表于 2010-12-20 14:29:40 | 显示全部楼层
1# rqmini


斑竹真的没有开发过GSM模块。
实在不能帮忙了,期望有高人给你指点
 楼主| rqmini 发表于 2010-12-20 16:16:02 | 显示全部楼层
我还想问下。如果做串口通信测试,是不是开发板要有2个串口,一个通信收发用,一个做控制端看效果的。

搜了好多帖子,都没明白。

是不是还有一种测试。就是只接一个串口,我发一个命令,延时,再收刚才那个命令的返回值?
比方就是发送AT,要收返回的OK。
 楼主| rqmini 发表于 2010-12-25 10:46:44 | 显示全部楼层
元河清 发表于 2012-5-15 15:34:13 | 显示全部楼层
请看:http://www.wheatxiong.com/tag/%e4%b8%b2%e5%8f%a3/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 13:29 , Processed in 1.020443 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表