因为项目需求需要使用到SIM短信模块,记录下SIM模块的使用记录。

1,准备工作
需要一块SIM模块,我使用的是SIM800L模块,淘宝可以购买到,如图所示,

推荐购买这一款,板上集成了电压模块,不需要单独使用3.7v供电,比较方便。

一张电话卡,自己手机的电话卡即可,同时还需要一个卡套,不然卡放不进去。

2,调试工作
插上卡,上电以后,模块会自动寻找信号,串口助手发送AT,
模块返回ok,表示成功。
然后发送 AT+CMGF=1 将短信模式设置为 text mode (模块默认是 pdu mode),

然后发送 AT+CMGS=“此处输入对应的电话号码”,等待模块返回 ‘>’ 字符,输入短信内容,
短信内容输入完成以后,发送十六进制的0x1a完成发送,记住,是16进制的。
如果一切顺利,此时你的手机可以收到你的短信。

3,单片机移植
已经知道了at指令的流程,就需要配置串口就行了。
串口.h文件的配置,使用的stm32的串口2

// ´®¿Ú2-USART2
#define  DEBUG_USARTx                   USART2
#define  DEBUG_USART_CLK                RCC_APB1Periph_USART2
#define  DEBUG_USART_APBxClkCmd         RCC_APB1PeriphClockCmd
#define  DEBUG_USART_BAUDRATE           115200// USART GPIO Òý½Åºê¶¨Òå
#define  DEBUG_USART_GPIO_CLK           RCC_APB2Periph_GPIOA
#define  DEBUG_USART_GPIO_APBxClkCmd    RCC_APB2PeriphClockCmd#define  DEBUG_USART_TX_GPIO_PORT         GPIOA
#define  DEBUG_USART_TX_GPIO_PIN          GPIO_Pin_2
#define  DEBUG_USART_RX_GPIO_PORT       GPIOA
#define  DEBUG_USART_RX_GPIO_PIN        GPIO_Pin_3#define  DEBUG_USART_IRQ                USART2_IRQn
#define  DEBUG_USART_IRQHandler         USART2_IRQHandler

c文件的定义

void USART_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;// ´ò¿ª´®¿ÚGPIOµÄʱÖÓDEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE);// ´ò¿ª´®¿ÚÍâÉèµÄʱÖÓDEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE);// ½«USART TxµÄGPIOÅäÖÃΪÍÆÍ츴ÓÃģʽGPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);// ½«USART RxµÄGPIOÅäÖÃΪ¸¡¿ÕÊäÈëģʽGPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);// ÅäÖô®¿ÚµÄ¹¤×÷²ÎÊý// ÅäÖò¨ÌØÂÊUSART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;// ÅäÖà ÕëÊý¾Ý×Ö³¤USART_InitStructure.USART_WordLength = USART_WordLength_8b;// ÅäÖÃֹͣλUSART_InitStructure.USART_StopBits = USART_StopBits_1;// ÅäÖÃУÑéλUSART_InitStructure.USART_Parity = USART_Parity_No ;// ÅäÖÃÓ²¼þÁ÷¿ØÖÆUSART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;// ÅäÖù¤×÷ģʽ£¬ÊÕ·¢Ò»ÆðUSART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;// Íê³É´®¿ÚµÄ³õʼ»¯ÅäÖÃUSART_Init(DEBUG_USARTx, &USART_InitStructure);// ʹÄÜ´®¿ÚUSART_Cmd(DEBUG_USARTx, ENABLE);
}

接下来是发送函数的定义
只用到了三个函数

``

/*****************  ·发送字符**********************/
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)
{/* ·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ýµ½USART */USART_SendData(pUSARTx,ch);/* µÈ´ý·¢ËÍÊý¾Ý¼Ä´æÆ÷Ϊ¿Õ */while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);
}
/*****************  发送字符串**********************/
void Usart_SendString( USART_TypeDef * pUSARTx, char *str)
{unsigned int k=0;do {Usart_SendByte( pUSARTx, *(str + k) );k++;} while(*(str + k)!='\0');/* µÈ´ý·¢ËÍÍê³É */while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)!=SET);}/***************** 发送16进制数**********************/
void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch)
{uint8_t temp_h, temp_l;/* È¡³ö¸ß°Ëλ */temp_h = (ch&0XFF00)>>8;/* È¡³öµÍ°Ëλ */temp_l = ch&0XFF;/* ·¢Ë͸߰Ëλ */USART_SendData(pUSARTx,temp_h);    while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);/* ·¢Ë͵ͰËλ */USART_SendData(pUSARTx,temp_l); while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);
}
只用这三个函数就够了```bash
Usart_SendString( DEBUG_USARTx,"AT\r\n");delay();Usart_SendString( DEBUG_USARTx,"AT+CMGF=1\r\n");delay();Usart_SendString( DEBUG_USARTx,"AT+CMGS=\"填入自己的手机号\"\r\n");
delay();Usart_SendString( DEBUG_USARTx,"warning! warning !\r\n");delay();
//  printf("0x%x",aa);Usart_SendHalfWord(DEBUG_USARTx,0x1a);

=按照顺序发送at指令,就可以了。

sim800l的最简单的发送短信在单片机上面就这样跑起来了。
谢谢观看

SIM800L模块发送短信相关推荐

  1. Linux-C实现GPRS模块发送短信

    "GSM模块,是将GSM射频芯片.基带处理芯片.存储器.功放器件等集成在一块线路板上,具有独立的操作系统.GSM射频处理.基带处理并提供标准接口的功能模块.GSM模块根据其提供的数据传输速率 ...

  2. linux 4g模块发送短信,OpenWRT使用4G模块上网和发送短信

    1.配置ppp 配置参考:https://blog.csdn.net/qianguozheng/article/details/50543704 结果就是:lsusb能发现HUAWEI的4G模块,if ...

  3. 通过twilio模块发送短信

    twilio官方参考文档:https://www.twilio.com/docs/sms/quickstart/python 使用该模块时只需要在twilio官网注册账号并获取到account_sid ...

  4. 使用python移动飞信模块发送短信

    作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信 ...

  5. 4G模块发送短信流程

    一.英文短信 发:AT 收:OK 发:AT+CMGF=1 (设置短信格式,1为文本格式:0为PDU格式) 收:OK 发:AT+CMGS=13902433649 收:> 发:data→ // da ...

  6. 16.6 用 Twilio 发送短信

    大多数人更可能靠近自己的手机,而不是自己的电脑,所以与电子邮件相比,短信 发送通知可能更直接.可靠.此外,短信的长度较短,让人更有可能阅读它们. 在本节中,你将学习如何注册免费的 Twilio 服务, ...

  7. python发短信sim800_玩转 ESP32 + Arduino (十八) 采用SIM800L发送短信和定位(基础知识)...

    一. 测试AT指令平台 普通的串口调试助手就可以调试 二. 有用的AT指令: 1. 查询类指令 AT命令 功能 正常返回 执行后的正常状态 异常处理 AT SIM800是否准备好,握手程序 OK 检查 ...

  8. python实现第三方验证码获取_python利用第三方模块,发送短信验证码(测试案例)...

    今天学到个利用python第三方,发送短信验证码的代码,速实现一遍,短信立即收到,果断记录在案! 环境:虚拟机上centos7平台,python2.7版本: 第三方服务提供商是:云通讯官网:www.y ...

  9. python发短信验证码_python利用第三方模块,发送短信验证码

    对于初学者,如何利用第三方python开发包发送短信验证码,下面是具体的实现和记录过程! 环境:虚拟机上centos7平台,python3.7版本: 首先,申请账号的部分就省略了 1. 获得appid ...

  10. 【毕业设计教程】单片机发送短信消息(GMS模块) - 物联网 嵌入式 stm32

    文章目录 1 简介 2 GMS模块 3 技术规格 3.1 适应性 4 arduino + GMS 示例代码 5 实现效果 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍如何使用GMS ...

最新文章

  1. 运维部门工作总结_2018年度工作总结
  2. 如何通过ip地址查找PC接在交换机的某个端口
  3. MyBatis逆向工程:根据table生成Model、Mapper、Mapper.xml
  4. Java有了synchronized,为什么还要提供Lock
  5. java动态数组的实现的_Java实现数据结构之【动态数组】
  6. 动态三角形(动态规划思想入门)
  7. abc大神的官改最新版本固件下载
  8. 计算机组成原理之模2运算
  9. Matlab中插值函数汇总和使用说明
  10. FC协议监控卡(FC协议分析仪),FC Monitor
  11. 如何求复数的模用计算机,Excel怎么计算复数? Excel对复数进行加减乘除指数对数模的教程...
  12. 自媒体如何多平台发文章?
  13. 利用Excel函数对 重复数据进行编号解决方法
  14. 信息系统项目管理师(2022年)—— 重点内容:项目质量管理(8)
  15. 六十四、Kylin的初体验
  16. 1025 反转链表 (25 分)
  17. 前沿对话:聚焦元宇宙,数字营销都能玩什么丨温州元宇宙月
  18. 主题:分享一个靠谱的免费论文查重网站
  19. 若xn>0,且x(n+1)/xn>1-1/n(n=1,2,...),证明级数∑xn发散
  20. Java实现简单的宠物商店管理系统

热门文章

  1. 输入姓名自动生成拼音
  2. Hydra(弱密码爆破)使用教程
  3. 怎么查找键盘注册表键值_C程序查找通过键盘输入的数字列表的平均值
  4. SECS的常用术语介绍与使用
  5. 博应用官网交互设计五个层次理论,你怎么看
  6. 【电子发票】电子发票OFD如何打开?OFD版式阅读器
  7. ogg是什么格式的文件后缀
  8. plsql导出单表数据
  9. 网络工程师 第8章 网络安全
  10. 浏览器密码查看工具-WebBrowserPassView使用实验 ——合天网安实验室学习笔记