keil 中too few actual parameters警告
#include<reg52.h>#include<string.h>#defineucharunsignedchar//8位#defineuintunsignedint...
#include <reg52.h>
#include <string.h>
#define uchar unsigned char //8位
#define uint unsigned int //16位
uchar receive[35]; //串口接收数据存放
uchar t=0;
void delay(uint z)//延时子程序
{
uint x,y;
for(x=10;x>0;x--)
for(y=z;y>0;y--); //z*10 us
}
void init()//串口初始化
{
SCON=0x50; //SCON:串行口工作方式1, 8-bit UART,允许串行接收位(REN=1)
TMOD=0x20; //TMOD:定时器1,方式2,8位自动重装方式
PCON=0x80; //SMOD=1;(将串口传送的波特率加倍)
TH1=0xfa; //Baud:9600 fosc=11.0592MHz
TL1=0xfa;
TR1=1; //启动定时器/计数器1运行
//IE=0x90; //EA=1,ES=1允许总中断,允许串口中断
ES=1; //开串口中断
EA=1; //开总中断
}
void send_char(uchar a)//向串口发送一个字符
{
SBUF=a; //发送数据给“串口调试助手”接收窗口
while(TI==0); //等待发送完,TI置1
TI=0; //清零 TI为发送中断标志
}
void send_string(uchar *str) //向串口发送一个字符串,strlen为该字符串长度
{
uint k=0;
do
{
send_char(*(str + k));
k++;
} while(k<strlen(str));
t=0; //发送完毕,准备接收
}
//串口接收中断函数,并将数据放入预存放数组里,每收到一个字符中断一次
void serial() interrupt 4 using 3
{
if(RI==1) //RI为接受中断标志,可能是发送产生的中断
{
uchar a;
RI=0; //接受中断标志软件清零
P1=SBUF; //把收到的缓存数据赋给P1口
a=SBUF; //把缓存在单片机的数据给a
receive[t++]=a; //将接受数据放入预置数组
send_string(receive); //将收到的数据发送回去,给P0口&显示在“串口调试助手”接收框
}
}
void main()
{
init(); //串口初始化
//delay(1);
send_string(); //利用串口发送字符串
while(1);
}
TEST.C(61): warning C209: '_send_string': too few actual parameters
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAY?TEST
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_SEND_STRING?TEST
CALLER1: ?PR?SERIAL?TEST
CALLER2: ?C_C51STARTUP
Program Size: data=54.0 xdata=0 code=427
creating hex file from "test"...
"test" - 0 Error(s), 3 Warning(s). 展开
#include <string.h>
#define uchar unsigned char //8位
#define uint unsigned int //16位
uchar receive[35]; //串口接收数据存放
uchar t=0;
void delay(uint z)//延时子程序
{
uint x,y;
for(x=10;x>0;x--)
for(y=z;y>0;y--); //z*10 us
}
void init()//串口初始化
{
SCON=0x50; //SCON:串行口工作方式1, 8-bit UART,允许串行接收位(REN=1)
TMOD=0x20; //TMOD:定时器1,方式2,8位自动重装方式
PCON=0x80; //SMOD=1;(将串口传送的波特率加倍)
TH1=0xfa; //Baud:9600 fosc=11.0592MHz
TL1=0xfa;
TR1=1; //启动定时器/计数器1运行
//IE=0x90; //EA=1,ES=1允许总中断,允许串口中断
ES=1; //开串口中断
EA=1; //开总中断
}
void send_char(uchar a)//向串口发送一个字符
{
SBUF=a; //发送数据给“串口调试助手”接收窗口
while(TI==0); //等待发送完,TI置1
TI=0; //清零 TI为发送中断标志
}
void send_string(uchar *str) //向串口发送一个字符串,strlen为该字符串长度
{
uint k=0;
do
{
send_char(*(str + k));
k++;
} while(k<strlen(str));
t=0; //发送完毕,准备接收
}
//串口接收中断函数,并将数据放入预存放数组里,每收到一个字符中断一次
void serial() interrupt 4 using 3
{
if(RI==1) //RI为接受中断标志,可能是发送产生的中断
{
uchar a;
RI=0; //接受中断标志软件清零
P1=SBUF; //把收到的缓存数据赋给P1口
a=SBUF; //把缓存在单片机的数据给a
receive[t++]=a; //将接受数据放入预置数组
send_string(receive); //将收到的数据发送回去,给P0口&显示在“串口调试助手”接收框
}
}
void main()
{
init(); //串口初始化
//delay(1);
send_string(); //利用串口发送字符串
while(1);
}
TEST.C(61): warning C209: '_send_string': too few actual parameters
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAY?TEST
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_SEND_STRING?TEST
CALLER1: ?PR?SERIAL?TEST
CALLER2: ?C_C51STARTUP
Program Size: data=54.0 xdata=0 code=427
creating hex file from "test"...
"test" - 0 Error(s), 3 Warning(s). 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询