0

0

C++怎么调用GSM模块_C++短信发送教程【通信】

穿越時空

穿越時空

发布时间:2026-03-01 15:48:04

|

253人浏览过

|

来源于php中文网

原创

最稳方案是使用 serialport 或 libserial 库发 at 指令;必须严格遵循 \r\n 结尾、等待 > 提示符、发送 \x1a 结束、校验波特率等参数,并结合 at+creg?/at+csq 等指令诊断失败原因。

c++怎么调用gsm模块_c++短信发送教程【通信】

serialport 库发 AT 指令最稳

Windows/Linux 下 C++ 直接操作串口发短信,核心就是发 AT 指令。别自己封装 CreateFileopen() + ioctl,容易丢字节、乱时序。推荐用成熟的 serialport(C++ binding)或 libserial,它们自动处理缓冲、超时、行尾换行符(\r\n)等细节。

常见错误:用 std::coutprintf 往串口写,结果没刷新、没加 \r\n,模块完全没响应;或者写完立刻读,但模块还没来得及回复,读到空数据。

  • 必须用 write() 后跟 read(),且两次调用之间加短延时(比如 100ms),或等模块返回 OK/ERROR
  • AT 指令结尾固定是 \r\n,不是 \n,Windows 下用 "AT+CMGF=1\r\n",别漏 \r
  • AT+CMGS="139xxxxxxx" 发送前要等模块返回 > 提示符,再发短信内容 + \x1A(Ctrl+Z)结束

AT+CMGF=1AT+CMGF=0 别混用

文本模式(AT+CMGF=1)和 PDU 模式(AT+CMGF=0)语法、编码、长度限制完全不同。C++ 程序里一旦设成文本模式,就别在中途切回 PDU——有些 GSM 模块不支持动态切换,会卡死或返回 ERROR

文本模式适合中文短消息(需模块支持 UCS2 编码),但实际发中文时仍要手动转 UCS2 字节流;PDU 模式更底层、兼容性好,但解析复杂。普通用途直接用文本模式 + ASCII 号码 + 英文内容最省事。

立即学习C++免费学习笔记(深入)”;

遨虾
遨虾

1688推出的跨境电商AI智能体

下载
  • 设文本模式:AT+CMGF=1\r\n → 必须收到 OK 才能继续
  • 发中文前确认模块是否支持:AT+CSCS="UCS2"\r\n,否则中文变乱码
  • 发英文短信时,AT+CMGS="+86139xxxxxxx"\r\n 后等待 >,再发内容(如 "Hello")加 \x1A

串口参数错一个,整个通信就静音

GSM 模块默认波特率多为 9600115200,但不同厂商/固件版本可能不同。如果发指令后无任何返回(连 ERROR 都没有),第一反应就是查波特率、校验位、停止位是否和模块一致。

典型配置是:9600 波特率、8 数据位、无校验(N)、1 停止位(1)。有些模块要求硬件流控关闭(RTS/CTS = OFF),开的话会握手失败。

  • 先用串口调试工具(如 XShell、Minicom)连上,手动发 AT\r\n 确认能通,再写 C++ 代码
  • Linux 下注意权限:/dev/ttyUSB0 通常需要加到 dialout 组,否则 open() 返回 -1
  • Windows 下端口号可能是 COM3COM4,不能硬编码,最好让用户可配或扫描可用端口

短信发送失败时,ERROR 不等于“没发出去”

模块返回 ERROR 只说明指令执行失败,原因可能是 SIM 卡未就绪、信号弱、存储满、号码格式错,甚至刚插卡还没注册上网络。不能一见 ERROR 就报“发送失败”,得结合 AT+CREG?(网络注册状态)、AT+CSQ(信号强度)、AT+CPIN?(SIM 卡状态)一起查。

尤其注意:部分模块在信号差时返回 +CMS ERROR: 500(“No network service”),而不是通用 ERROR;这种错误码要单独解析,不能全当异常抛出。

  • AT+CMGS 前务必检查:AT+CREG? 返回 +CREG: 0,1+CREG: 0,5(已注册)
  • 避免连续快速重试,模块有指令队列限制,高频发 AT 可能被丢弃
  • 每次发送后清空串口输入缓冲区,防止旧响应干扰下一次读取
事情说清了就结束。真正难的不是发那条短信,而是让 C++ 程序在各种模块型号、驱动版本、系统权限环境下稳定拿到 OK+CMTI 这类关键响应。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

411

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

357

2023.10.25

printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

76

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

300

2023.11.28

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

638

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2221

2024.10.24

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1335

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1158

2023.07.27

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

24

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 10.5万人学习

C 教程
C 教程

共75课时 | 5.1万人学习

C++教程
C++教程

共115课时 | 20万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号