嵌入式学习--4G模块与串口
本专栏主要介绍在树莓派下使用EC20 4G模块的相关学习,包括串口通信,ppp拨号上网,模块AT指令集,短信以及项目中的实现
梦小羊
系统软件工程师
展开
-
Linux串口编程 —— 4G模块短信获取与删除
文章目录一. 回显短信的两种方式1.1 PDU编码显示1.2 Unicode显示二. 相关指令的学习2.1 AT+CMGF 设置短信回显模式2.2 AT+CMGL 查看短信2.2.1 AT+CMGF=0 模式2.2.2 AT+CMGF=1 模式2.3 AT+CMGD 删除短信三. 编程实现短信的获取与解析3.1 字符流转字节流3.2 利用iconv系列函数完成转码3.3 上层调用,获取指定号码的首条短信3.4 删除指定号码的首条短信四. 测试前面在座的项目一直在短信的发送上下功夫,尤其是在PDU编码上花了原创 2020-08-03 13:08:33 · 2305 阅读 · 1 评论 -
Linux串口编程短信篇(四) ——— 实现最简单的4G模块短信发送
一. 像手机一样发送短信1.1 看看效果在介绍main程序之前,先来看一下效果吧~其中,cmgs,pdu 是PDU编码是的中间产物,也就是使用原始AT命令发送PDU短信时,需要自己计算填写到的数值,这个数值只有算的全部正确才能发送成功,打印出来是为了调试所用,也可以将其关闭显示. 可到PDU.c的文件中将1改成0可关闭pdu编码显示:继续测试: 1.2 提出问题前面说了,发送短信有两种格式,但是我在这里却没有显示输入要发送哪种格式的短信,这是怎么实现的呢?原创 2020-07-13 23:00:23 · 3058 阅读 · 3 评论 -
Linux串口编程短信篇(三) ——— AT指令封装实现Check系列函数及SMS函数封装
一. 很重要的函数: send_at_cmd() 标题并未提到这个send_at_cmd()函数,但可以这么说,该程序实现最终功能的最为核心的一个函数就是send_at_cmd(),也是一个非常好用的函数… 那么,他到底重要在什么地方呢?又为什么说它好用呢?1.1 设计思路 刚开始学习串口编程时,写了这么两个函数,分别是 comport_send() 和 comport_recv(),这两个函数分别封装了 write() 和 read() 系统调用,主要用来实现向串口发送AT指令和接收串口回发的数据原创 2020-07-13 20:52:29 · 3652 阅读 · 1 评论 -
Linux串口编程短信篇(二) ——— PDU编码(详解 UTF-8 转 Unicode)
文章目录一. 电话号码处理1.1 短信中心号码的处理1.2 收件人号码处理二. 短信内容处理2.1 UTF-8 转 Unicode2.2 Hex 转 String三. 最终汇总3.1 PDU格式拼接3.2 函数 pdu_encod()四. 模块头文件 PDU.h一. 电话号码处理1.1 短信中心号码的处理实现:int Processing_center_number(char *center_number){ int i; char temp; char head[20]原创 2020-07-13 17:28:50 · 2661 阅读 · 2 评论 -
Linux串口编程短信篇(一) ——— 串口通信初始化
文章目录一. 前言二. 短信篇介绍三. 串口初始化3.1 流程图 3.2 代码一. 前言 前面关于串口通信,串口编程的文章也总结了许多,之前的有一篇文章,写的是编程实现busybox microcom 工具,将功能模块一一分开,其实有一点多此一举了,但是作为我学习Linux下串口编程的记录,我还是决定不修改这篇博客,但是,既然作为串口编程的c文件,应该将所有用于串口通信的功能模块归纳进一个c文件 comport.c ,头文件均放置在 comport.h 中,然后写一个main函数来进行调用,这样,才是一原创 2020-07-13 15:52:03 · 1807 阅读 · 1 评论 -
Raspberrypi —— 实现 EC20 4G模块PPP拨号上网
文章目录一 . PPP协议1.1 什么是PPP1.2 PPP认证方式二. Linux中的PPP实现2.1 Linux中的PPP架构2.2 PPP协议族三. 拨号上网流程3.1 硬件准备3.2 软件准备3.3 拨号脚本四. 开始拨号五. 补充一 . PPP协议1.1 什么是PPPPPP协议(Point-to-Point Protocol)是一种网络协议中最为基础的协议,工作于数据链路层,它是为在同等单元之间传输数据包这样的简单链路而设计的,这种链路提供了全双工操作,并按照顺序传递数据包。PPP为基于各种原创 2020-07-11 17:23:41 · 5281 阅读 · 0 评论 -
4G模块AT指令发送中英文短信详细流程
文章目录Text 格式短信发送短信步骤1.检查SIM状态2. 发送短信AT+CMGF=1 (设置短信格式为Text)AT+CMGS="1559xxx8257"Ctrl+Z 发送PDU格式短信发送1. 检查SIM卡状态2. 处理短信中心号码处理收件人号码与中文短信内容验证Text 格式短信发送短信步骤收件人:+861559xxx8257信 息:Hello World!1.检查SIM状态AT+CPIN? (查看SIM卡是否就绪)AT+CREG? (查看SIM卡注册状态)AT+COPS (查看原创 2020-07-07 22:18:00 · 7845 阅读 · 4 评论 -
AT指令集 —— EC20 4G模块短信的收发与管理(短信服务命令)
文章目录短信服务命令AT+CSMS 选择消息服务(在CDMA网络中无效)AT+CMGF 讯息格式AT+CSCA 服务中心地址(在CDMA网络中无效)AT+CPMS 首选消息存储AT+CMGL 列出短信AT+CMGD Delete MessageAT+CMGR 读短信AT+CMGS 发送短信AT+CMMS发送更多消息(在CDMA网络中无效)AT+CMGW 写消息到内存AT+CMSS 从存储发送消息短信服务命令AT+CSMS 选择消息服务(在CDMA网络中无效)该命令选择消息传递服务<serv原创 2020-07-07 18:41:40 · 13197 阅读 · 0 评论 -
Linux树莓派串口通信编程 —— C语言实现AT指令集的发送与接收
一. 前言 在拿到我的EC20 4G模块后,可谓是迫不及待的去办了一张新的电话卡,可是在插上卡以后,登录我的树莓派,却始终存在一个问题,插上卡以后,使用AT命令AT+CSQ查看信号强度,一切正常,AT+CPIN?一切也都就绪,但是在使用AT+CREG?时,却出现了(0,2)的错误,我上一篇博客有提到,使用这个命令第二个参数出现2说明卡还没有注册上,但是处于正在注册状态,可是无论我怎么等,仍然处于这个状态,换了几张卡依然如此,能检查出卡,却大不了电话发不了短信,在网上找了各种解决方法,cs原创 2020-07-05 13:48:17 · 7685 阅读 · 9 评论 -
AT指令集超详细解析(内含EC20模块datasheet)
AT指令语法 使用AT指令与串口通信,是一种“礼尚往来”的通信方式,即当控制端输入一个AT指令后,与之通信的外部设备将会回复一个结果,就这样一对一的进行。以最简单的AT指令为例,当串口连接好以后,使用busybox microcom -s 115200 ttyUSB2当然,4G模块接入树莓派后会模拟出多个模块,如果选择的ttyUSB不对可多尝试记下;进入串口通信模式,当我输入一个AT后,设备将会回复一个OK每输入一次AT设备都会回复一个OK,就可以利用不同的指令,结合设备的返回码来与设备通信原创 2020-06-30 14:48:25 · 35217 阅读 · 1 评论