研究 串口 上位机编程 ,找到了一个 支持 串口AT指令的设备,
TC35 GSM/GPRS Modem R&D
Version:4.32
天津菲利科电子技术有限公司 出品的 很老的一个产品
如果使用RS232 与他通信 ,插针的方法如下:
供电电源 需要是 12V 2A 或者 5V 2A ,我实验用过的是 12V 2A的直流电源适配器
通过 力特的FT232 USB 转RS232 串口转接线 连接到电脑上。
输入 AT 回车,返回如下的效果
具体的资料如下:
FK01MCE-T3
GSM语音增强型模块
FK01MCE-T3的GSM无线通信评估模块,本模块板载高性能GSM芯片,支持DB9的RS232、直联式TTL、CMOS等多种接口方式与您的计算机或CPU系统相联,通过标准的AT指令与本评估板模块进行控制接口,能为您的系统提供短消息数据通信、CSD数据通信与语音数据通信等多重服务与无线接口方案。
资料 下载地址:
https://wenku.baidu.com/view/8306a9d5195f312b3169a51b.html
用的AT指令为:
AT 回车
返回OK
AT+CGMI 给出模块厂商的标识。
AT+CGMI
SIEMENS
OK
AT+CGMM 获得模块标识。这个命令用来得到支持的频带
AT+CGMM
TC35
OK
AT+CGMR 获得改订的软件版本。
AT+CGMR
REVISION 04.00
OK
AT+CGSN 获得GSM模块的IMEI(国际移动设备标识)序列号
AT+CGSN
520338411272698
OK
这几条 作为 测试串口 通信 够用了 应该
关闭回显的命令:ATE0 回车
打开回显的命令是:ATE1 回车
推荐“串口调试助手” ,调试起来非常方便。
(1)关于波特率:对有些模块,用超级终端进行配置的时候,波特率是要设置为57600的,而用串口调试工具进行调试的时候,波特率应设置为你的系统中用到的实际通信速率(例如我用的是9600),这两个波特率的概念是不一样的,前者只是用超级终端配置时的波特率。
(2)关于回显:对GSM模块发 ATE1<回车> 命令可以打开回显功能,如果在超级终端中进行AT指令交互,则不会有这个麻烦,因为你所输入的全都会打在屏幕上,但是如果在串口调试工具中,你输完一个命令,它并不会显示在数据接收区中。
(3)关于重复显示:有些模块,你一开始输入AT命令,输入一个字符出来两个,例如你想输入AT,但是实际上它出来AATT,此时用ATE0<回车>命令可以解决这个问题,变为正常显示。
(4)在串口调试工具中输入发送短信的结尾符 Ctrl+Z 时,需要选上“以16进制发送”,并且在发送框中填上1A (Ctrl+Z 的ASCII码的16进制就是 0x1A),这样之后再点“发送”,就OK了。
2.AT的命令格式
AT指令格式:AT指令都以”AT”开头,以<CR>(即\r,回车符)结束,模块运行后,串口默认的设置为:8位数据位、1位
停止位、无奇偶校验位、硬件流控制(CTS/RTS).
注意为了发送AT命令,最后还要加上<LF> (即\n,换行符)这是串口终端要求.
有一些命令后面可以加额外信息来.如电话号码
每个AT命令执行后,通常DCE都给状态值,用于判断命令执行的结果.
AT返回状态包括三种情况 OK,ERROR,和命令相关的错误原因字符串.返回状态前后都有一个<CR>字符.
如 <CR>OK<CR> 表示AT命令执行成功.
<CR>ERROR<CR> 表示AT命令执行失败
<CR>NO DIAL TONE<CR> 只出现在ATD命令返回状态中,表示没有拨号音,这类返回状态要查命令手册
这里罗列一些常见的AT命令
4.1 基本操作
1.1 AT
命令解释:检测Module与串口是否连通,能否接收AT命令;
命令格式:AT<CR>
命令返回:OK (与串口通信正常)(无返回,与串口通信未连通)
1.2 AT+CSQ
命令解释:检查网络信号强度和SIM卡情况
命令格式:AT+CSQ<CR>
命令返回:+CSQ: **,##
其中**应在10到31之间,数值越大表明信号质量越好,##应为99。
否则应检查天线或SIM卡是否正确安装
测试结果:AT+CSQ<CR>
+CSQ: 31, 99
信号强度值会有少许变化,用手遮住天线,信号强度值会下降(大致在26左右)。
1.3 ATZ
命令解释:恢复原厂设置
命令格式:ATZ<CR>
命令返回:OK
1.4 AT+CGMR
命令解释:查询模块版本;
命令格式:AT+CGMR<CR>
命令返回: <revision >
+CMEERROR <err>
测试结果:AT+CGMR<CR>
R4A021 CXC1122528
OK
解释:模块版本号为R4A021
1.5 AT+IPR
命令解释:修改串口1波特率;
命令格式:AT+IPR=<value ><CR>
命令返回: ERROR
OK
测试结果:AT+IPR=19200<CR>
OK
注意:串口波特率修改为19200后要把串口调试工具的波特率设为相应
波特率后模块才会有返回
1.6 AT&W
命令解释:保存模块设置;
命令格式:AT&W<CR>
命令返回: OK
ERROR(保存不成功)
测试结果:AT&W <CR>
OK
换行符‘\n’和回车符‘\r’
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符
‘\n’ 10 换行(newline)
‘\r’ 13 回车(return)
也可以表示为’\x0a’和’\x0d’.(16进制)
在windows系统下,回车换行符号是”\r\n”.但是在Linux等系统下是没有”\r”符号的。
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定”\r\n”又要判定”\n”。
写程序时可能得到一行,将其进行trim掉’\r’,这样能得到你所需要的string了。
我的实验: 在VC2005下面 输入的回车,只有’\n’;很好哈,和Linux统一了
0A LF (NL line feed, new line) 换行键
0D CR (carriage return) 回车键
4F O 大写字母O
4B K 大写字母K
41 A 大写字母A
54 T 大写字母T
AT
发送:41 54 0D 0A
返回 : 0D 0A 4F 4B 0D 0A
判断 AT指令接收 结束
(只针对该模块TC35)
接收端接收到了
OK\r\d 这4个字符
对应的十六进制是
4F 4B 0D 0A