论坛
进入论坛
商行-迷你打铁铺
技术讨论区
|
上位机软件开发
|
应用技术讨论区
|
免费工具使用讨论
|
松鼠--开发板
|
豆皮--开发板
|
思维--可编程控制器
|
开源单端反激电源
|
项目综合讨论区
|
作品交流、逻辑电路、无刷驱动
|
精品下载区
转至论坛
你的位置:
StmFans思蜕盟 OPELC 自由电子联盟
>>
论坛
>>
技术讨论区
>>
查看帖子
怎么用PC机串口来调试GSM模块
发布: 2008-9-02 14:45 | 作者:
long18751813
| 来源: StmFans思蜕盟 OPELC 自由电子联盟
GSM模块是TC35I。
littleworm
(2008-9-02 15:10:36)
串口连接好之后
一般的GSM模块波特率都是自适应的
你查一下你的这个模块波特率
设置好了之后 就可以用AT命令调试
附上一些常用的AT命令 你自己去测试去吧 AT命令测试对了 就可以开始写代码了 呵呵
经常用到的一些AT指令
SIMCOM的 (不同模块恢复的格式可能有点差别 但是AT命令一般是通用的)
1、AT+IPR?(查询模块的波特率)
模块会返回+IPR: 9600之格式的信息,9600即波特率,注意9600与冒号之间是有空格的;
2、AT+IPR=9600;&W(设置模块的固定波特率)
此命令写一次之后就可以了,simcom支持掉电保护,之后此模块波特率就一直为9600了,成功返回OK,错误返回ERROR,说明命令格式错误;
3、AT+CIPCCFG=3,2,1024,1(设定模块缓冲区为1024字节)
此命令成功返回OK,错误返回ERROR,说明命令格式错误,=号后面数据根据个人需求填写;
4、AT+CIPCCFG?(查询模块缓冲区的大小)
模块会返回+CIPCCFG:3,2,1024,1这种格式的信息。1024即为缓冲区大小;
5、AT+CFUN=1,1(全功能命令,立即执行)
此命令可以开启simcom模块的大部分功能,一般在初始化模块的时候都要写上;
6、AT+CLIP=1(显示来电号码)
显示来电号码,如果没有这条指令,则来电话模块只送出ring,不送出号码;
7、ATH(挂断电话)
这个就不用多说了,送出就挂断电话,在Benq里还可以做完全断开gprs网络用;
8、ATA(接听电话)
接听电话,也不用多说了,来电话发这个给模块就可以接听了;
9、AT+VTS="dt"(dtmf音)
开启dtmf音,dtmf音就是你拨打10086时提示你按几键发给10086的,开始我也不知道。。。听同事说才明白,benq开启dtmf音是AT+WDTMF=1,0,7,7,麻烦;
10、AT+VTD=70(dtmf音持续长短)
持续项为0~255;
11、AT+CLVL=(通话音量大小)
范围是0~100,数值越小,则音量越轻;
12、AT+SIDET=(侧音灵敏度大小)
范围是1~32767,越大越灵敏,日常通话建议设为0,设大了容易产生啸叫,在设置监听功能时可以把此值设大一些;
13、AT+CMIC=0,15(改变麦克风的增益)
逗号前有0,1两项,1为免提通话状态,逗号后即音量大小了,当然是对方听到你的。此功能是切换免提用的;
14、AT+CHFA=(0/1此命令用来切换两个音频通道)
simcom提供两个音频通道,用此命令来切换;
15、AT+CMGS=(发送短信的长度)
当然你也可以不用发=号,则可以写任意长度短信(模块支持长度范围内);
16、AT+CMGL=0(读取新sms)
返回+CMGL: 21(如果有短消息的话)之格式的信息,后面回车换行跟着就是短信内容了;
17、AT+CMGD=(删除第几条短信)
后面是几就删除第几条短信咯;
18、AT+CNMI=2,1(新sms来时送出脉冲)
此命令最好在初始模块时就加上,如果没有此命令,嘿嘿,有短信你也不知道了,正确放回OK,错误返回ERROR,格式错误;
19、AT+CSCA?(读取sms服务中心号码)
返回+CSCA: "+8613800532500",145之格式的信息,我是青岛的,所以返回是这个号码;
20、AT+CIPSHUT(关闭移动场景返回到IP INITIAL)
在连线不成功时这条命令挺管用的,可以断开连接然后可以再次执行连线,建议跟AT+CIPCLOSE一起用(个人建议),如果这条命令都不行的话就只有给模块重启了,移动场景是什么到现在我也不明白,谁明白可以告诉我啊;
21、AT+CIPSEND=(通过gprs网络发送数据指令)
等号后面跟发送数据长度,返回〉号后可以填写数据,达到规定数据量自动发送,也支持无规定数据量的发送,发送成功返回SEND OK,不成功返回SEND FAIL,也可能不返回东东;
22、AT+CIPSTART="TCP","192.43.10.157","4005"(gprs拨号连线)
正确返回OK,错误ERROR,格式错误,连上线返回CONNECT OK,连线失败返回CONNECT FAIL;格式能看懂吧应该;
23、AT+CIPSTATUS(查询模块gprs状态)
模块返回STATE: CONNECT OK(在线),STATE: IP IND(连线失败,接受场景配置),STATE: IP CLOSED(对方掉线或断开连接了),STATE: PDP DEACT(连接断开,你应该检查一下你的天线了),STATE: TCP CONNECTING(正在连接,这种情况下一般都连接失败,所以就直接AT+CIPCLOSE,AT+CIPSHUT一起用,然后重连得了,当然我的做法,不一定好),我碰到的只有这几种状态,其他状态没遇到过;
24、AT+CCLK="07/03/28,06:46:30+00"(给模块设定时间日期)
格式应该看的懂,正确放回OK,错误返回ERROR,格式错误;
25、AT+CCLK?(读取日期时间)
返回+CCLK: "03/01/01,16:07:46+00"之格式的信息;
26、AT+CSQ(读取信号强度)
返回+CSQ: 20,0之格式的信息,20为有用的值对我来说,信号强度;
27、AT+CBC(读取电池电量)
返回+CBC: 1,96,4149之格式的信息,0 模块由电池供电,1 模块装有电池,但不由电池供电,2 模块没有电池,3 模块电源无效, 禁止呼叫,1-100表示电量百分比,后面那个数不清楚作用,不过模块读取的电量信息不是很准,我明明装的电池有时还返回2;
littleworm
(2008-9-02 15:15:03)
搜到符合你的模块的资料
SIEMENS TC35i AT指令实例(中文版)
TC35(i)上电后会自动发送 ^SYSSTART表示模块已启动
AT (测试连接)
OK
说明:发送的指令的16进制为"41 54 0D 0A",0D 0A是所有AT指令后要加的回车,
回复的内容为0D 0A 4F 4B 0D 0A。
如果前面设置了ATE1的话回复的则有前面的指令回显,为41 54 0D 0D 0A 4F 4B 0D 0A,下同。
-------------------------------------------------------------------
AT^SBV (查询当前的供电电压,TC35i支持)
^SBV:4105
OK
表示TC35i的供电电压为4.105V,个人感觉这个测量出来还比较准的.
--------------------------------------------------------------------
AT^SCID (查询SIM卡ID)
^SCID: 89860047183213202183
OK
ATE设置好不回显状态下的回复内容对应的16进制为: 0D 0A 5E 53 43 49 44 3A 20 38 39 38 36 30 30 34 37 31 38 33 32 31 33 32 30 32 31 38 33 0D 0A 0D 0A 4F 4B 0D 0A
---------------------------------------------------------------------
AT^SHOM (查询是否本地)
^SHOM: 0
OK
16进制为:0D 0A 5E 53 48 4F 4D 3A 20 30 0D 0A 0D 0A 4F 4B 0D 0A
----------------------------------------------------------------------
AT^SLCD 查询上次呼叫的持续时间)
^SLCD:00:00:12
OK
-----------------------------------------------------------------------
ATE (关掉回显)
OK
关掉回显后不显示指令,否则先显示收到的指令再显示指令执行的结果
-----------------------------------------------------------------------
AT+IPR=9600 (设置串口通信速率,如9600,TC35支持多种速率,也支持自动识别)
OK
----------------------------------------------------------------------
AT+CSCA? (读短消息中心号码)
+CSCA: "+8613800732500",145
OK
16进制为:0D 0A 2B 43 53 43 41 3A 20 22 2B 38 36 31 33 38 30 30 37 33 32 35 30 30 22 2C 31 34 35 0D 0A 0D 0A 4F 4B 0D 0A
AT^SCID (查询IMEI)
^SCID: 89860047183213202183
16进制为:0D 0A 5E 53 43 49 44 3A 20 38 39 38 36 30 30 34 37 31 38 33 32 31 33 32 30 32 31 38 33 0D 0A 0D 0A 4F 4B 0D 0A
-----------------------------------------------
ATD*****; (拨号,"*"为需要拨的号码,如呼叫13973292929,则为ATD13973292929;
注意分号包括在指令内.)
-----------------------------------------------
AT+CSQ (查询信号质量RSSI)
+CSQ: 30,99
此处30表示当前的信号RSSI
可能的数值和对应的信号强度如下:
0 -113dBm及以下
1 -111dBm
2...30 -109...-53dBm
31 -51dBm及以上
99 错误
--------------------------------------------------
电话呼入:先设置来电提示AT+CLIP=1,来电时TC35间隔周期发送
+CLIP: ,"13973292929",129,,,,0
16进制为:32 0D 0D 0A 2B 43 4C 49 50 3A 20 2C 22 31 33 39 37 33 32 39 32 39 32 39 22 2C 31 32 39 2C 2C 2C 2C 30 0D 0A 0D 0A
--------------------------------------------------
at+cops? 查询注册的网络
+COPS: 0,0,"China Mobile"
OK
16进制:0D 0A 2B 43 4F 50 53 3A 20 30 2C 30 2C 22 43 68 69 6E 61 20 4D 6F 62 69 6C 65 22 0D 0A 0D 0A 4F 4B 0D 0A
这是注册到中国移动(46000)的情况
测试时发现当无信号时可能回复时间比较长,或者回复错误的.
at+cops=? 可以搜索目前手动搜索的网络,回复如:
+COPS: (2,"China Mobile",,"46000"),(3,"China Unicom",,"46001"),,(0-4),(0,2)
OK
这个搜索需要一定的时间(象手机的手动搜网一样)
--------------------------------------------------
AT+CREG? 查询网络注册情况
+CREG: 0,1
OK
HEX Format:0D 0A 2B 43 52 45 47 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A
1表示已经注册网络,其它可能的情况如下:
0 没有注册
1 注册本地网络
2 没有注册,但正在搜索
3 网络注册失败,限制服务
4 未知
5 已注册,漫游
注意,在判断是否已注册网络时要1和5都是已经注册的,过去我写程序的时候就忘记5了。
---------------------------------------------
AT+CCLK? 查询TC35的实时时钟
+CCLK: "00/01/01,00:35:15"
OK
HEX Format:0D 0A 2B 43 43 4C 4B 3A 20 22 30 30 2F 30 31 2F 30 31 2C 30 30 3A 33 35 3A 31 35 22 0D 0A 0D 0A 4F 4B 0D 0A
AT+CCLK=<time>可以设置TC35(i)的实时时钟,此处time的格式和用AT+CCLK读出的格式一样。
AT+CCLK="97/05/03,00:00:00" 设置实时时钟为97年5月3日,0时0分0秒
AT+CCLK? 查询当前时间
+CCLK: "00/01/01,00:56:49"
HEX Format:2B 43 43 4C 4B 3A 20 22 30 30 2F 30 31 2F 30 31 2C 30 30 3A 35 36 3A 35 38 22 0D 0A
AT+CALA="97/05/03,00:01:00",0,0,"1min delay" 设置在97年5月3日,0时1分0秒报警,报警内容为"1min delay"。时间到达时TC35输出+CALA: 1min delay,AT+CALA还可以设置定时开机功能。
long18751813
(2008-9-02 15:49:25)
谢谢littleworm细心解答,
我是不是只要连接GND,VDD,和两条串口线就可以。
还要连接什么。
littleworm
(2008-9-02 19:17:23)
一般的使用 用2线串口就可以了
GSM模块上一般还有一个PERKEY引脚
这个引脚在初始化的时候要用到
连上这个引脚 再按照datasheet初始化
就可以用串口玩了
long18751813
(2008-9-02 22:36:13)
现在还不敢动手,心里有点发虚。
看下datasheet先。
hfmedical
(2008-12-22 14:51:06)
GSM模块是TC35I。
我也来说两句
查看全部回复
网络资源
思蜕盟QQ群: 65081316(满) 68584951(满) 61958672(空) 59804115(空)
最新发表
bbs2009
IAR for STM8 来了
83244656
Warning[Lt010]: Inconsistent enum co
one1001
stm32f101rc 读写at24c512 问题?
yyjslna
stm32f10x不能进入外部中断函数,是什么
wonderchen
长见识的东西
disin2000
STM 32SPI 通信问题
xiepeilin
Keil编译Http_demo 和Http_upload时候
chaijb2008
那位有 MDK4.10中文帮助文件?
voidx
请问:BCB/DELPHI RichEdit追加类容,怎么
一般的GSM模块波特率都是自适应的
你查一下你的这个模块波特率
设置好了之后 就可以用AT命令调试
附上一些常用的AT命令 你自己去测试去吧 AT命令测试对了 就可以开始写代码了 呵呵
经常用到的一些AT指令
SIMCOM的 (不同模块恢复的格式可能有点差别 但是AT命令一般是通用的)
1、AT+IPR?(查询模块的波特率)
模块会返回+IPR: 9600之格式的信息,9600即波特率,注意9600与冒号之间是有空格的;
2、AT+IPR=9600;&W(设置模块的固定波特率)
此命令写一次之后就可以了,simcom支持掉电保护,之后此模块波特率就一直为9600了,成功返回OK,错误返回ERROR,说明命令格式错误;
3、AT+CIPCCFG=3,2,1024,1(设定模块缓冲区为1024字节)
此命令成功返回OK,错误返回ERROR,说明命令格式错误,=号后面数据根据个人需求填写;
4、AT+CIPCCFG?(查询模块缓冲区的大小)
模块会返回+CIPCCFG:3,2,1024,1这种格式的信息。1024即为缓冲区大小;
5、AT+CFUN=1,1(全功能命令,立即执行)
此命令可以开启simcom模块的大部分功能,一般在初始化模块的时候都要写上;
6、AT+CLIP=1(显示来电号码)
显示来电号码,如果没有这条指令,则来电话模块只送出ring,不送出号码;
7、ATH(挂断电话)
这个就不用多说了,送出就挂断电话,在Benq里还可以做完全断开gprs网络用;
8、ATA(接听电话)
接听电话,也不用多说了,来电话发这个给模块就可以接听了;
9、AT+VTS="dt"(dtmf音)
开启dtmf音,dtmf音就是你拨打10086时提示你按几键发给10086的,开始我也不知道。。。听同事说才明白,benq开启dtmf音是AT+WDTMF=1,0,7,7,麻烦;
10、AT+VTD=70(dtmf音持续长短)
持续项为0~255;
11、AT+CLVL=(通话音量大小)
范围是0~100,数值越小,则音量越轻;
12、AT+SIDET=(侧音灵敏度大小)
范围是1~32767,越大越灵敏,日常通话建议设为0,设大了容易产生啸叫,在设置监听功能时可以把此值设大一些;
13、AT+CMIC=0,15(改变麦克风的增益)
逗号前有0,1两项,1为免提通话状态,逗号后即音量大小了,当然是对方听到你的。此功能是切换免提用的;
14、AT+CHFA=(0/1此命令用来切换两个音频通道)
simcom提供两个音频通道,用此命令来切换;
15、AT+CMGS=(发送短信的长度)
当然你也可以不用发=号,则可以写任意长度短信(模块支持长度范围内);
16、AT+CMGL=0(读取新sms)
返回+CMGL: 21(如果有短消息的话)之格式的信息,后面回车换行跟着就是短信内容了;
17、AT+CMGD=(删除第几条短信)
后面是几就删除第几条短信咯;
18、AT+CNMI=2,1(新sms来时送出脉冲)
此命令最好在初始模块时就加上,如果没有此命令,嘿嘿,有短信你也不知道了,正确放回OK,错误返回ERROR,格式错误;
19、AT+CSCA?(读取sms服务中心号码)
返回+CSCA: "+8613800532500",145之格式的信息,我是青岛的,所以返回是这个号码;
20、AT+CIPSHUT(关闭移动场景返回到IP INITIAL)
在连线不成功时这条命令挺管用的,可以断开连接然后可以再次执行连线,建议跟AT+CIPCLOSE一起用(个人建议),如果这条命令都不行的话就只有给模块重启了,移动场景是什么到现在我也不明白,谁明白可以告诉我啊;
21、AT+CIPSEND=(通过gprs网络发送数据指令)
等号后面跟发送数据长度,返回〉号后可以填写数据,达到规定数据量自动发送,也支持无规定数据量的发送,发送成功返回SEND OK,不成功返回SEND FAIL,也可能不返回东东;
22、AT+CIPSTART="TCP","192.43.10.157","4005"(gprs拨号连线)
正确返回OK,错误ERROR,格式错误,连上线返回CONNECT OK,连线失败返回CONNECT FAIL;格式能看懂吧应该;
23、AT+CIPSTATUS(查询模块gprs状态)
模块返回STATE: CONNECT OK(在线),STATE: IP IND(连线失败,接受场景配置),STATE: IP CLOSED(对方掉线或断开连接了),STATE: PDP DEACT(连接断开,你应该检查一下你的天线了),STATE: TCP CONNECTING(正在连接,这种情况下一般都连接失败,所以就直接AT+CIPCLOSE,AT+CIPSHUT一起用,然后重连得了,当然我的做法,不一定好),我碰到的只有这几种状态,其他状态没遇到过;
24、AT+CCLK="07/03/28,06:46:30+00"(给模块设定时间日期)
格式应该看的懂,正确放回OK,错误返回ERROR,格式错误;
25、AT+CCLK?(读取日期时间)
返回+CCLK: "03/01/01,16:07:46+00"之格式的信息;
26、AT+CSQ(读取信号强度)
返回+CSQ: 20,0之格式的信息,20为有用的值对我来说,信号强度;
27、AT+CBC(读取电池电量)
返回+CBC: 1,96,4149之格式的信息,0 模块由电池供电,1 模块装有电池,但不由电池供电,2 模块没有电池,3 模块电源无效, 禁止呼叫,1-100表示电量百分比,后面那个数不清楚作用,不过模块读取的电量信息不是很准,我明明装的电池有时还返回2;
SIEMENS TC35i AT指令实例(中文版)
TC35(i)上电后会自动发送 ^SYSSTART表示模块已启动
AT (测试连接)
OK
说明:发送的指令的16进制为"41 54 0D 0A",0D 0A是所有AT指令后要加的回车,
回复的内容为0D 0A 4F 4B 0D 0A。
如果前面设置了ATE1的话回复的则有前面的指令回显,为41 54 0D 0D 0A 4F 4B 0D 0A,下同。
-------------------------------------------------------------------
AT^SBV (查询当前的供电电压,TC35i支持)
^SBV:4105
OK
表示TC35i的供电电压为4.105V,个人感觉这个测量出来还比较准的.
--------------------------------------------------------------------
AT^SCID (查询SIM卡ID)
^SCID: 89860047183213202183
OK
ATE设置好不回显状态下的回复内容对应的16进制为: 0D 0A 5E 53 43 49 44 3A 20 38 39 38 36 30 30 34 37 31 38 33 32 31 33 32 30 32 31 38 33 0D 0A 0D 0A 4F 4B 0D 0A
---------------------------------------------------------------------
AT^SHOM (查询是否本地)
^SHOM: 0
OK
16进制为:0D 0A 5E 53 48 4F 4D 3A 20 30 0D 0A 0D 0A 4F 4B 0D 0A
----------------------------------------------------------------------
AT^SLCD 查询上次呼叫的持续时间)
^SLCD:00:00:12
OK
-----------------------------------------------------------------------
ATE (关掉回显)
OK
关掉回显后不显示指令,否则先显示收到的指令再显示指令执行的结果
-----------------------------------------------------------------------
AT+IPR=9600 (设置串口通信速率,如9600,TC35支持多种速率,也支持自动识别)
OK
----------------------------------------------------------------------
AT+CSCA? (读短消息中心号码)
+CSCA: "+8613800732500",145
OK
16进制为:0D 0A 2B 43 53 43 41 3A 20 22 2B 38 36 31 33 38 30 30 37 33 32 35 30 30 22 2C 31 34 35 0D 0A 0D 0A 4F 4B 0D 0A
AT^SCID (查询IMEI)
^SCID: 89860047183213202183
16进制为:0D 0A 5E 53 43 49 44 3A 20 38 39 38 36 30 30 34 37 31 38 33 32 31 33 32 30 32 31 38 33 0D 0A 0D 0A 4F 4B 0D 0A
-----------------------------------------------
ATD*****; (拨号,"*"为需要拨的号码,如呼叫13973292929,则为ATD13973292929;
注意分号包括在指令内.)
-----------------------------------------------
AT+CSQ (查询信号质量RSSI)
+CSQ: 30,99
此处30表示当前的信号RSSI
可能的数值和对应的信号强度如下:
0 -113dBm及以下
1 -111dBm
2...30 -109...-53dBm
31 -51dBm及以上
99 错误
--------------------------------------------------
电话呼入:先设置来电提示AT+CLIP=1,来电时TC35间隔周期发送
+CLIP: ,"13973292929",129,,,,0
16进制为:32 0D 0D 0A 2B 43 4C 49 50 3A 20 2C 22 31 33 39 37 33 32 39 32 39 32 39 22 2C 31 32 39 2C 2C 2C 2C 30 0D 0A 0D 0A
--------------------------------------------------
at+cops? 查询注册的网络
+COPS: 0,0,"China Mobile"
OK
16进制:0D 0A 2B 43 4F 50 53 3A 20 30 2C 30 2C 22 43 68 69 6E 61 20 4D 6F 62 69 6C 65 22 0D 0A 0D 0A 4F 4B 0D 0A
这是注册到中国移动(46000)的情况
测试时发现当无信号时可能回复时间比较长,或者回复错误的.
at+cops=? 可以搜索目前手动搜索的网络,回复如:
+COPS: (2,"China Mobile",,"46000"),(3,"China Unicom",,"46001"),,(0-4),(0,2)
OK
这个搜索需要一定的时间(象手机的手动搜网一样)
--------------------------------------------------
AT+CREG? 查询网络注册情况
+CREG: 0,1
OK
HEX Format:0D 0A 2B 43 52 45 47 3A 20 30 2C 31 0D 0A 0D 0A 4F 4B 0D 0A
1表示已经注册网络,其它可能的情况如下:
0 没有注册
1 注册本地网络
2 没有注册,但正在搜索
3 网络注册失败,限制服务
4 未知
5 已注册,漫游
注意,在判断是否已注册网络时要1和5都是已经注册的,过去我写程序的时候就忘记5了。
---------------------------------------------
AT+CCLK? 查询TC35的实时时钟
+CCLK: "00/01/01,00:35:15"
OK
HEX Format:0D 0A 2B 43 43 4C 4B 3A 20 22 30 30 2F 30 31 2F 30 31 2C 30 30 3A 33 35 3A 31 35 22 0D 0A 0D 0A 4F 4B 0D 0A
AT+CCLK=<time>可以设置TC35(i)的实时时钟,此处time的格式和用AT+CCLK读出的格式一样。
AT+CCLK="97/05/03,00:00:00" 设置实时时钟为97年5月3日,0时0分0秒
AT+CCLK? 查询当前时间
+CCLK: "00/01/01,00:56:49"
HEX Format:2B 43 43 4C 4B 3A 20 22 30 30 2F 30 31 2F 30 31 2C 30 30 3A 35 36 3A 35 38 22 0D 0A
AT+CALA="97/05/03,00:01:00",0,0,"1min delay" 设置在97年5月3日,0时1分0秒报警,报警内容为"1min delay"。时间到达时TC35输出+CALA: 1min delay,AT+CALA还可以设置定时开机功能。
我是不是只要连接GND,VDD,和两条串口线就可以。
还要连接什么。
GSM模块上一般还有一个PERKEY引脚
这个引脚在初始化的时候要用到
连上这个引脚 再按照datasheet初始化
就可以用串口玩了
看下datasheet先。