第一段:
#include<pic.h> //包含单片机内部资源预定义
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
unsigned char rece[4];//定义一个数组存储接收数据
unsigned char k;//定义通用寄存器
void main()
{
TRISC=0xff;
TXSTA=0x24;
RCSTA=0x90;
SPBRG=25;
GIE=1;
PEIE=1;
RCIE=1;
while(1) //等待中断
{;}
}
void interrupt usart(void)
{
if(RCIE&&RCIF) //判断是否为串口接收中断
{
for(k=0;k<4;k++)
{
while(1)
{
if(RCIF==1) break;
} //等待接收数据
rece[k]=RCREG; //读取接收数据,同时清掉RCIF
}
for(k=0;k<4;g++)
{
TXREG=rece[k];
while(1)
{
if(TXIF==1) break;
}
}
}
}
第二段:
#include<pic.h> //包含单片机内部资源预定义
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
unsigned char rece[4];//定义一个数组存储接收数据
unsigned char k;//定义通用寄存器
void main()
{
TRISC=0xff;
TXSTA=0x24;
RCSTA=0x90;
SPBRG=25;
GIE=1;
PEIE=1;
RCIE=1;
while(1) //等待中断
{;}
}
void interrupt usart(void)
{
if(RCIE&&RCIF) //判断是否为串口接收中断
{
for(k=0;k<4;k++)
{
while(1)
{
if(RCIF==1) break;
} //等待接收数据
rece[k]=RCREG; //读取接收数据,同时清掉RCIF
TXREG=rece[k];
while(1)
{
if(TXIF==1) break;
}
}
}
}
比如发送7e aa aa aa
第二段收到的同时就返回,可以实现
但是第一段为什么只返回7e aa aa,少一个aa呢
此帖出自
小平头技术问答
一周热门 更多>