怎么用51单片机读取sim900a接收的短信
sim900a接收到的短信到哪里了,是不是到串口接收sbuf中了,是要用数组将sbuf中的东西存起来用吗?要怎么才能读取出来,能不能给个简单的程序?...
sim900a接收到的短信到哪里了,是不是到串口接收sbuf中了,是要用数组将sbuf中的东西存起来用吗?要怎么才能读取出来,能不能给个简单的程序?
展开
2个回答
展开全部
需要串口中断接收才行,哪里不懂你可以在问。。。
void Uart2InterruptReceive(void) interrupt 8
{
unsigned char tmp2;
//char i;
//num2=0;
IE2 &= (~ES2);//关闭串口2中断//ES2 = 0;
if(S2CON & S2RI) //if(S2RI == 1)
{
S2CON &= (~S2RI);//S2RI = 0;
tmp2 = S2BUF;
//Uart1Send(tmp2);
rev_buf2[num2++]=tmp2;
if(num2>=80)
{
num2=0;
//Uart1Sends("GSM B "); 以上全试过可以发送7/23,20:03
}
}
else
{
S2CON &= (~S2TI);//S2TI = 0;
}
IE2 |= ES2;//ES2 = 1
}
void Uart2InterruptReceive(void) interrupt 8
{
unsigned char tmp2;
//char i;
//num2=0;
IE2 &= (~ES2);//关闭串口2中断//ES2 = 0;
if(S2CON & S2RI) //if(S2RI == 1)
{
S2CON &= (~S2RI);//S2RI = 0;
tmp2 = S2BUF;
//Uart1Send(tmp2);
rev_buf2[num2++]=tmp2;
if(num2>=80)
{
num2=0;
//Uart1Sends("GSM B "); 以上全试过可以发送7/23,20:03
}
}
else
{
S2CON &= (~S2TI);//S2TI = 0;
}
IE2 |= ES2;//ES2 = 1
}
更多追问追答
追问
最后短信的内容是不是存在了tmp2中?
追答
是的在tmp2中,你是要检测短信内容(比如发一条特定短信可以触发51引脚电平),还是想要把短信的内容提取出来?(提取后放入rom或者sd卡中)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询