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

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

目录

调试

32控制

硬件连接

百度网盘源码 


调试

首先用串转USB模块调试。


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


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

AT+CSMP=17,167,0,25

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

>要发送的内容转UNICON编码

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


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*)"内容");
	}

硬件连接


模块RX接PA2 TX接PA3。


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


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


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


百度网盘源码 

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


            (仅供学习使用)

链接:https://pan.baidu.com/s/1z6PluDTkZXngFkTuBAYTUw 
提取码:9438
 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存