OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3972|回复: 1

编译程序报错,无法解决,程序贴上

[复制链接]

81

主题

270

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
452
金钱
452
注册时间
2014-8-11
在线时间
87 小时
发表于 2014-11-25 19:46:40 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include<TC35.h> unsigned char idata SystemBuf[RxIn]; unsigned char code AT[]="AT"; //握手信号 unsigned char code ATE[]="ATE0"; //关回显 unsigned char code AT_CNMI[]="AT+CNMI=2,1";//设置这组参数来了新信息直接显示到串口,不作存储 unsigned char code AT_CSCA[]="AT+CSCA=\"+8613800512500\"";//设置短信服务中心号码 AT+CSCA=\"+8613010360500\" unsigned char code AT_CMGF[]="AT+CMGF=1";//设置短信的格式为text格式 unsigned char code godphone[11]="13771992474";//客户端号码 unsigned char code AT7[]={0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D};//AT+CMGS= 即发送短信客户端号码指令 eg:AT+CMGS=13771992474 回车 发送 unsigned char code AT12[]={0x41,0x54,0x44,0x3E};//ATD> 即拨打客户端电话指令 eg:呼叫13973292929,则为ATD13973292929 unsigned char code warning[]="warning! if you get it, please send get it to me"; unsigned char Rx=0; unsigned char rec_flag=0; unsigned char flag=0; /*********************************************************** 函数名称?Delay_ms 函数功能:延时函数 入口参数:ms 出口参数:无 ***********************************************************/ void Delay_ms(unsigned int ms)// 延时子程序 { unsigned char i; while(ms--) { for(i=0;i<120;i++); } } /*********************************************************** 函数名称:sendchar 函数功能:发送单个字符 入口参数:ch 出口参数:无 ***********************************************************/ void sendchar(unsigned char ch)//发送单个字符 { SBUF=ch; //送入缓冲区 while(TI!=1); //等待发送完毕 TI=0; //软件清零 } /*********************************************************** 函数名称:sendstring 函数功能:发送字符串 入口参数:*str 出口参数:无 ***********************************************************/ void sendstring(unsigned char *str)//通过串口发送字符串 { while(*str!='\0') { sendchar(*str); Delay_ms(2); str++; } sendchar(0x0D); sendchar(0x0A);//回车符 } /*********************************************************** 函数名称:senddata 函数功能:发送数据 入口参数:dat 出口参数:无 ***********************************************************/ void senddata(unsigned char dat) /*发送数据函数*/ { SBUF =dat; while(!TI); TI = 0; } /*********************************************************** 函数名称:mingling 函数功能:发送数组 入口参数:zijie *p 出口参数:无 ***********************************************************/ void mingling(unsigned char zijie,unsigned char *p) /*发送数组函数*/ { unsigned char m; for(m=0;m<zijie;m++) { senddata(p[m]); } } /*********************************************************** 函数名称:clearBuff 函数功能:清空 入口参数:ch 出口参数:无 ***********************************************************/ void clearBuff(void) { for(Rx=0;Rx<RxIn;Rx++) { SystemBuf[Rx]=0x00; } Rx=0; } /*void Start_GSM(void) { IGT=0; Delay_ms(1000); IGT=1; Delay_ms(1000); }*/ void UART_init (void) /*对串口进行初始化*/ { TMOD=0x20; //选择定时器1 PCON=0x00; ///波特率不加倍 SCON=0x50; //串行工作方式1允许串行接收 TH1=0xFD; //实验板上晶振位11.0592MHZ,选择波特率为9600 TL1=0xFD; //在相应计数器上赋值 EA=1; //总中断开启 ES=1; //串行中断开启 TR1=1; //开启定时器1 } void receive() interrupt 4 //通过中断,单片机串口接收TC35回复的数据 { if(RI) { if(Rx<RxIn) { SystemBuf[Rx]=SBUF; Rx++; } RI=0; } } void GSM_INIT(void) /*初始化TC35模块*/ { while(1) { clearBuff(); Delay_ms(1000); sendstring(AT); Delay_ms(1000); sendstring(ATE); Delay_ms(1000); sendstring(AT_CNMI); Delay_ms(1000); sendstring(AT_CSCA); Delay_ms(1000); clearBuff(); sendstring(AT_CMGF); Delay_ms(1000); //sendstring(SystemBuf); //Delay_ms(1000); if((strstr(SystemBuf,"OK")!=NULL)) //判断是否模块初始化成功,成功的话模块会回复"OK"给单片机 { //如果单片机没有收到OK,就继续发送初始化指令/ clearBuff(); break; } else { clearBuff(); Delay_ms(50); } } } void receivedmessage_flag(void) /*接收短信准备*/ { if((SystemBuf[5]==0x54)&&SystemBuf[6]==0x49) //如果有新短信来,模块会通过串口向单片机发送字符串, TI { // 此函数的功能是判断是否有新短信来,如果来的话就置位准备接受位标志为1 rec_flag=1; clearBuff(); } else { clearBuff(); } } void call(void) { unsigned int x; mingling(3,AT12); for(x=0;x<11;x++) { senddata(godphone[x]); } senddata(0x3b);//打电话的时候需要在电话号面跟随一个分号 senddata(0x0D); senddata(0x0A); } void sendmessage(void) { unsigned int x; mingling(8,AT7); //mingling 函数中不发送回车 for(x=0;x<11;x++) { senddata(godphone[x]); } senddata(0x0D); senddata(0x0A); Delay_ms(100); sendstring(warning); //sendstring 函数中发送回车(实际上在参考手册中是不要求加回车的) Delay_ms(10); sendchar(0x1A); //sendchar senddata实际上是同一个作用,都是发送一个字节的数据 }[/mw_shl_code]
对应头文件
[mw_shl_code=c,true]#ifndef _TC35_H #define _TC35_H #include<reg52.h> #include <string.h> sbit sig=P3^3; #define RxIn 90 //typedef uint unsigned int; //typedef uchar unsigned char; extern unsigned char idata SystemBuf[RxIn]; extern unsigned char code AT[]; //握手信号 extern unsigned char code ATE[]; //关回显 extern unsigned char code AT_CNMI[];"//设置这组参数来了新信息直接显示到串口,不作存储 extern unsigned char code AT_CSCA[];"//设置短信服务中心号码 AT+CSCA=\"+8613010360500\" extern unsigned char code AT_CMGF[];//设置短信的格式为text格式 extern unsigned char code godphone[11];"//客户端号码 extern unsigned char code AT7[];//AT+CMGS= 即发送短信客户端号码指令 eg:AT+CMGS=13771992474 回车 发送 extern unsigned char code AT12[];//ATD> 即拨打客户端电话指令 eg:呼叫13973292929,则为ATD13973292929 extern unsigned char code warning[]; extern unsigned char Rx; extern unsigned char rec_flag; extern unsigned char flag; void Delay_ms(unsigned int);// 延时子程序 void sendchar(unsigned char);//发送单个字符 void sendstring(unsigned char *str);//通过串口发送字符串 void senddata(unsigned char); /*发送数据函数*/ void mingling(unsigned char,unsigned char *p); /*发送数组函数*/ void clearBuff(void); void UART_init(void); /*对串口进行初始化*/ void receive() interrupt 4; //通过中断,单片机串口接收TC35回复的数据 void GSM_INIT(void); /*初始化TC35模块*/ void receivedmessage_flag(void); /*接收短信准备*/ void call(void); void sendmessage(void); #endif [/mw_shl_code]
编译报错


对应位置是两处SystemBuf[Rx]

我是一只菜鸟,但我会大鹏展翅
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-11-25 21:15:58 | 显示全部楼层
不知道你写的啥。
编译器说你的量不支持赋值。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 17:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表