STM32控制SIM900A模块发送短信的问题
时间:10-02
整理:3721RD
点击:
stm32与sim900a模块串口三线连接,程序如下,极度简化了程序。结果单步调试的时候短信能发出去,让它自己跑就不行,是什么问题?
USART1_Puts("at+cops?\r");//发送指令查询当前服务状态
Delayms(500); //等待响应
USART1_Puts("AT+CMGF=1\r");//设置英文方式发送
Delayms(500);
USART1_Puts("AT+CMGS=\"150****7285\"\r");//发送的号码
Delayms(500);
USART1_Puts("HELLO! Chan.");//发送的内容
Delayms(500);
USART1_PutHex(0x1A);//以0x1a来结束,表示内容结束,发送短信
while(1);
USART1_Puts("at+cops?\r");//发送指令查询当前服务状态
Delayms(500); //等待响应
USART1_Puts("AT+CMGF=1\r");//设置英文方式发送
Delayms(500);
USART1_Puts("AT+CMGS=\"150****7285\"\r");//发送的号码
Delayms(500);
USART1_Puts("HELLO! Chan.");//发送的内容
Delayms(500);
USART1_PutHex(0x1A);//以0x1a来结束,表示内容结束,发送短信
while(1);
需要初始化接口吧。
返回延时的问题,给sim900发送不同的指令,返回的时间不同,你应该在代码里面做一个判断,判断返回的数据是不是你想要的,如果是的程序就继续往下执行,这种代码实现起来还是比较简单的。
这程序不就只能执行一次吗?你要什么效果呢?
你不要直接延迟,最好根据返回值来决定下一步的操作,不过这样做比较麻烦。
或者将每一步之间的延时时间再调大些,再加个串口,观察SIM900返回的数据,可以分析出哪步出问题了
学习了,多谢分享
学习了,多谢分享
研究出来了吗,想要买一台,推送信息
学习学习,谢谢分享!