GPRS.h中有如下定义
extern char RecNumber[MAX_PHONE_NUMBER_LENGTH + 1]; //接收到电话号码
extern char Content[MAX_MESSAGE_CONTENT_LENGTH]; //接收到短信内容
typedef struct S_DateTimeTag
{
u16 nYear;
u8 nMonth;
u8 nDay;
u8 nHour;
u8 nMin;
u8 nSec;
}S_DateTime;
//接收到短信相关信息
typedef struct MessageInfoTag
{
char szRecNumber[MAX_PHONE_NUMBER_LENGTH + 1]; //接收到电话号码
char szContent[MAX_MESSAGE_CONTENT_LENGTH]; //接收到短信内容
//MessageType eType; //接收类型
S_DateTime sRecTime; //接收信息时间
//char szSendingData[MAX_MESSAGE_CONTENT_LENGTH];
}MessageInfo;
在GPRS.c 中定义如下
char RecNumber[MAX_PHONE_NUMBER_LENGTH + 1]; //接收到电话号码
char Content[MAX_MESSAGE_CONTENT_LENGTH]; //接收到短信内容
MessageInfo g_sMessageInfo; //定义一个短信结构体
我在串口2中断中调用给值不正常
memset(&g_sMessageInfo, 0x0, sizeof(g_sMessageInfo));
memset(g_sMessageInfo.szRecNumber, 'a',10);
memset(g_sMessageInfo.szContent, 'a',10);
memset(RecNumber, 'a',10);
memset(Content, 'a',10);
//if(ParseReceiveMessage(pCmdResult, &g_sMessageInfo))
//{
#ifdef GPRS_DEBUG
sprintf(Debug_Str1,"RecNumber: %s\r\n",g_sMessageInfo.szRecNumber);
DebugPrint(Debug_Str1);
sprintf(Debug_Str1,"Content: %s\r\n",g_sMessageInfo.szContent);
DebugPrint(Debug_Str1);
sprintf(Debug_Str1,"RecNumber: %s\r\n", RecNumber);
DebugPrint(Debug_Str1);
sprintf(Debug_Str1,"Content: %s\r\n", Content);
DebugPrint(Debug_Str1);
#endif
串口1打印出来结果
结构体数组打印出来不正常 打印出来不 是 “aaaaaaaaa”
而定义全局串口打打打印出来是正常的 全是“aaaaaaaaa”
当我去掉GPRS.h 结构体 MessageInfo 中 //S_DateTime sRecTime; //接收信息时间
打印就全正常
这是是什么原因啊????
|