STM32学习记录——SIM900A实现中英文短信发送

这篇具有很好参考价值的文章主要介绍了STM32学习记录——SIM900A实现中英文短信发送。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

调试

32控制

硬件连接

百度网盘源码 


发短信失败大概率跟你的模块供电有关系,由于GSM模块发射信号功率较大,电脑的USB供电电流较小,板子供电不足问题需要外接充电宝供电。(充电宝比电脑USB电流大)

调试

首先用串转USB模块调试。

TEST(UCS2)模式下发送中英文短息,短消息储存至SIM卡中。

AT+CMGF=1 AT+CSCS="UCS2” AT+CSCA?                      

AT+CSMP=17,167,0,25

AT+CMGS="要发送电话号码转UNICON编码"

>要发送的内容转UNICON编码

最后以十六进制的方式发送1A。

STM32学习记录——SIM900A实现中英文短信发送

32控制

用stm32控制SIM900A的几个重要函数;

同样的指令编写成函数;


u8 sim900a_send_chmessage_zc(u8*number,u8*content)
{
	u8 cmd[100];
	sprintf((char*)cmd,"AT+CMGS=\"%s\"",number);
	if(sim900a_send_cmd((u8 *)"AT+CMGF=1",(u8 *)"OK",100))	return SIM_CMGF_ERR;
	if(sim900a_send_cmd((u8 *)"AT+CSCS=\"UCS2\"",(u8 *)"OK",100))	return SIM_CSCS_ERR;
	if(sim900a_send_cmd((u8 *)"AT+CSCA?",(u8 *)"OK",100))	return SIM_CSCA_ERR;
	if(sim900a_send_cmd((u8 *)"AT+CSMP=17,167,0,25",(u8 *)"OK",100))	return SIM_CSMP_ERR;
	if(sim900a_send_cmd(cmd,(u8 *)">",100))	return SIM_CMGS_ERR;
	UART2SendString(content,strlen((char*)content));
	//u2_printf("%s",content);
	if(sim900a_send_cmd((u8 *)0x1A,(u8 *)"+CMGS:",1500))	return SIM_CMGS_SEND_FAIL;
	return SIM_OK;
}

 发送的代码

u8 sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)
{
	u8 res=0; 
	USART2_RX_STA=0;USART2_RX_REC_ATCOMMAD=1;
	if((u32)cmd<=0XFF)
	{
		while(DMA1_Channel7->CNDTR!=0);	//等待通道7传输完成   
		USART2->DR=(u32)cmd;
	}else u2_printf("%s\r\n",cmd);//发送命令
	if(ack&&waittime)		//需要等待应答
	{
		while(--waittime)	//等待倒计时
		{
			delay_ms(10);
			if(USART2_RX_STA&0X8000)//接收到期待的应答结果
			{
				if(sim900a_check_cmd(ack))break;//得到有效数据 
				USART2_RX_STA=0;
			} 
		}
		if(waittime==0)res=1; 
	}
	USART2_RX_STA=0;USART2_RX_REC_ATCOMMAD=0;
	return res;
} 

主函数

while(res)	//只需要修改电话号和内容即可
	{
		res=sim900a_send_chmessage_zc((u8*)"电话号码",(u8*)"内容");
	}

STM32学习记录——SIM900A实现中英文短信发送

硬件连接


模块RX接PA2 TX接PA3。

STM32学习记录——SIM900A实现中英文短信发送

串口2发送给模块,串口3只是用来打印。

由于GSM模块发射信号功率较大,电脑的USB供电电流较小,板子供电不足问题这里我需要外接一个电源供电。

STM32学习记录——SIM900A实现中英文短信发送

代码烧录后用充电宝给板子供电,串转USB接串口3调试打开串口调试助手更直观。

STM32学习记录——SIM900A实现中英文短信发送

百度网盘源码 

最后附上整个工程源码,只需要在主函数转修改UNICON编码的电话号码和内容即可。            (仅供学习使用)

链接:https://pan.baidu.com/s/1z6PluDTkZXngFkTuBAYTUw 
提取码:9438
 文章来源地址https://www.toymoban.com/news/detail-411687.html

到了这里,关于STM32学习记录——SIM900A实现中英文短信发送的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32-LCD中英文显示及应用

    目录 字符编码 ASCII码(8位) 中文编码(16位) GB2312标准 GBK编码 GB18030标准(32位) Big5编码 Unicode字符集和编码 UTF-32(32位) UTF-16(16位/32位,变长编码方式) UTF-8(8位/16位/24位/32位,变长编码方式) 实验环节1:LCD显示中英文(字库存储在外部Flash) 存储在外部Flash的字模

    2024年02月08日
    浏览(41)
  • LCD-STM32液晶显示中英文-(5.字符编码)

    目录 字符编码 字符编码说明参考网站 字符编码 ASCII编码 ASCII编码介绍 ASCII编码表 中文编码 1. GB2312标准 区位码  2. GBK编码 3. GB18030 各个标准的对比说明 4. Big5编码 字符编码及转换测试:导航菜单 - 千千秀字 Unicode官网:Index。 使用举例: keil5设置编码如下:         由于

    2024年02月17日
    浏览(46)
  • LCD-STM32液晶显示中英文-(7.字模及显示原理)

    目录 字模介绍 什么是字模 字模的构成 字模显示原理 字模制作 如何制作字模 字模寻址公式 存储字模文件         有了编码,我们就能在计算机中处理、存储字符了,但是如果计算机处理完字符后直接以编码的形式输出,人类将难以识别。因此计算机与人交互时,一般会

    2024年02月17日
    浏览(56)
  • LCD-STM32液晶显示中英文-(6.unicode字符集)

    目录 Unicode字符集和编码 UTF-32 UTF-16 UTF-8(重点:必须掌握) BOM ANSI         由于各个国家或地区都根据使用自己的文字系统制定标准,同一个编码在不同的标准里表示不一样的字符,各个标准互不兼容,而又没有一个标准能够囊括所有的字符,即无法用一个标准表达所有

    2024年02月16日
    浏览(36)
  • QT+C++桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置

    程序示例精选 QT+C++桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对《QT+C++桌面程序窗体框架模板-中英文切换-文件打开历史记录-工具选项设置》编写代码,

    2024年01月24日
    浏览(53)
  • 【Python】解决pywin32各种常见问题及中英文手册下载(详细)

    目录 前言 一、中英文手册获取 二、各种常见问题 1. ModuleNotFoundError: No module named \\\'win32xxx\\\' 2. ImportError:DLL load failed while importing win32xxx: 找不到指定的模块。 方法一 方法二 方法三 3. pywintypes.error: (2, \\\'XXX\\\', \\\'系统找不到指定的文件。\\\') 总结 pywin32是针对微软Windows的Python扩展,p

    2024年02月07日
    浏览(39)
  • PYTHON实现AES加密,中英文通用!!!

    AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个。在日常的开发中,无论是实现前后端的接口数据加密,还是数据传输安全性,都使用了AES加密,本文章将从python的角度去实现AES的加密和解密 AES的加密方式有很多种,例如ECB、CBC、CTR、OFB、CFB,最常用的是

    2024年02月12日
    浏览(50)
  • Vue前端使用I18实现中英文切换

    一、配置vue-i18 1. 进入src/locales/index.js 2. 查看 src/utils/tool.js文件 3. 查看 src/locales/lang/zh-cn.js、src/locales/lang/en.js 二、配置页面 进入需要有翻译功能的页面进行配置,如 login.vue 1. HTML内容 2. JS内容 三、主要步骤 方法一 ① 页面上添加小地球选择语言显示选项 ② 实现添加的小地

    2024年04月25日
    浏览(44)
  • 微信小程序配置实现中英文国际化语言切换

    目录 1,在根目录新建文件夹和js文件 2. 在main.js中设置全局语言状态(默认设置为中文) 3. 页面添加  语言切换按钮(登录页面) 4. 在需要显示的页面导入使用 根目录新建一个locales.js文件, 通用的一些函数可以放在此文件该文件夹下 ,如下图所示 配置中英文字段,字段要一

    2024年02月12日
    浏览(52)
  • dedecms织梦实现中英文分页功能方法步骤

    前言 之前做项目的时候遇到一个需求,因为是中英文版本的网站,所以分页也就需要对应的英文,在论坛、百度等地方搜索了很久均没能找到满意的答案,不过今天找到下面这篇内容,并进行测试,发现可以适合织梦目前最新的5.7版,并且已经成功的实现,所以与大家分享下

    2023年04月24日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包