從串口,上位機(jī)發(fā)送字串到單片機(jī)接收到str1中,然后從str1中截取想要的字符串到str2中,
字符串部分拷貝函數(shù)我在Turbo C中運(yùn)行得到的是正確的結(jié)果,但在單片機(jī)中測(cè)試結(jié)果很詭異
:得到的目標(biāo)字符串str2的結(jié)果是正確的,但是源字符串str1的輸出結(jié)果變成與str2是一樣的。
一值找不到原因,哪位大哥幫忙分析一下。謝謝
兩個(gè)字符串:
char * str1,*str2;
字符串部分拷貝程序:
mystrcopy(char * str1,char * str2,int n1,int n2)/*字符順序:0、1、2、3..... */
{
int k=0;
while(n2--)
{
*str2++=str1[n1+k++] ;
}
str2[n2]='\0';
}
//串口接收中斷函數(shù)
void serial_receve () interrupt 4 using 3
{
if (RI)
{
unsigned char recch;
RI = 0 ; //P0 = 0x00;P2=0x00;
recch=SBUF;
if(recch!='@')
{
recstr[recNum++]=recch;
}
else
{
recstr[recNum]='\0';
mystrcopy(recstr,recdata,3,recNum-2);
if(send_string_scom(recdata))//串口發(fā)送字符串
{
recdata=NULL;recstr=NULL;
recNum=0;
read_flag= 1 ;
}
recNum=0;
}
}
}
主程序:
main()
{
....
....
str1="1234567";
while(1);
}
[此貼子已經(jīng)被作者于2010-5-11 20:49:25編輯過]
|