专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
单片机驱动GSM模块,遇到了个很棘手的问题!【已解决】
2019-07-28 18:37
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
16951
19
1004
本帖最后由 512826028 于 2015-1-25 23:06 编辑
单片机是 MSP430F149
GSM模块是 SIM900A
程序中 单片机单独发送 AT指令,可以得到OK答复,单片机点亮第一个LED灯。
单片机单独发送ATE0指令,也可以得到OK答复,单片机点亮另一个LED灯。
但是,如果让单片机按顺序,先发送AT指令,等到OK后,在发送ATE0指令,就不能继续运行了,第二个LED就一直都点不亮了。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
512826028
2019-07-29 10:34
/*******************************************************************************
*描 述: 此文件包含操作GSM的所有函数
*GSM 模块:SIM900A
*控制芯片:MSP430F149
*
*******************************************************************************/
#include "include.h"
extern uchar USART1BUFF[];//重新声明一下其他函数中定义的USART1BUFF数组
extern void UART_Clear_BUFF(void);
//外部声明过的函数 0 UART1,1 UART2,str为字符串指针
extern void UART_PutStr(uchar uartx, char *str);
extern void UART_PutChar(uchar uartx, char ch);
extern void DelayNms(unsigned char n);
extern void DelayNs(unsigned char n);
extern void led(int i);
extern void GPIO_OUT(uchar px, uchar data8);
extern void UART_Init(uchar uartx);
char *ATE0="ATE0 ";//清除GSM模块回显
/*******************************************************************************
*SIM900初始化函数
*
*返回值:无
*测试通过时间:2015年1月22日22:58:54
*******************************************************************************/
void SIM900(void)
{
UART_Clear_BUFF();
UART_PutStr(0,"AT ");
while(strstr((char const*)USART1BUFF,"OK")==NULL)
{
UART_Clear_BUFF();
led(2);
//注意:此处必须为RNRN!!!
UART_PutStr(0,"AT ");
}
GPIO_OUT(P2,0Xf7);//点亮一个LED灯,代表握手成功
UART_Clear_BUFF();
UART_PutStr(0,"ATE0 ");
while(strstr((char const*)USART1BUFF,"OK")==NULL)
{
UART_Clear_BUFF();
led(4);
//注意:此处必须为RNRN!!!
UART_PutStr(0,"ATE0 ");
}
GPIO_OUT(P2,0Xfe);//点亮一个LED灯,代表握手成功
}
复制代码
加载中...
查看其它19个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- /*******************************************************************************
- *描 述: 此文件包含操作GSM的所有函数
- *GSM 模块:SIM900A
- *控制芯片:MSP430F149
- *
- *******************************************************************************/
- #include "include.h"
- extern uchar USART1BUFF[];//重新声明一下其他函数中定义的USART1BUFF数组
- extern void UART_Clear_BUFF(void);
- //外部声明过的函数 0 UART1,1 UART2,str为字符串指针
- extern void UART_PutStr(uchar uartx, char *str);
- extern void UART_PutChar(uchar uartx, char ch);
- extern void DelayNms(unsigned char n);
- extern void DelayNs(unsigned char n);
- extern void led(int i);
- extern void GPIO_OUT(uchar px, uchar data8);
- extern void UART_Init(uchar uartx);
- char *ATE0="ATE0
";//清除GSM模块回显
- /*******************************************************************************
- *SIM900初始化函数
- *
- *返回值:无
- *测试通过时间:2015年1月22日22:58:54
- *******************************************************************************/
- void SIM900(void)
- {
- UART_Clear_BUFF();
- UART_PutStr(0,"AT
");
- while(strstr((char const*)USART1BUFF,"OK")==NULL)
- {
- UART_Clear_BUFF();
- led(2);
- //注意:此处必须为RNRN!!!
- UART_PutStr(0,"AT
");
- }
- GPIO_OUT(P2,0Xf7);//点亮一个LED灯,代表握手成功
- UART_Clear_BUFF();
- UART_PutStr(0,"ATE0
");
- while(strstr((char const*)USART1BUFF,"OK")==NULL)
- {
- UART_Clear_BUFF();
- led(4);
- //注意:此处必须为RNRN!!!
- UART_PutStr(0,"ATE0
");
- }
- GPIO_OUT(P2,0Xfe);//点亮一个LED灯,代表握手成功
- }
复制代码一周热门 更多>