打印
[AVR单片机]

C字符串处理问题

[复制链接]
2983|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaomifan|  楼主 | 2010-5-11 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从串口,上位机发送字串到单片机接收到str1中,然后从str1中截取想要的字符串到str2中,字符串部分拷贝函数我在Turbo C中运行得到的是正确的结果,但在单片机中测试结果很诡异:得到的目标字符串str2的结果是正确的,但是源字符串str1的输出结果变成与str2是一样的。一值找不到原因,哪位大哥帮忙分析一下。谢谢
两个字符串: 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';
}
//串口接收中断函数
void serial_receve () interrupt 4 using 3
{
if (RI)
{
unsigned char recch;
RI = 0 ; //P0 = 0x00;P2=0x00;
recch=SBUF;
if([email=recch!=]recch!='@'[/email])
{
recstr[recNum++]=recch;
}
else
{
recstr[recNum]='\0';
mystrcopy(recstr,recdata,3,recNum-2);
if(send_string_scom(recdata))//串口发送字符串
{
recdata=NULL;recstr=NULL;
recNum=0;
read_flag= 1 ;
}
recNum=0;
}
}
}
主程序:
main()
{
....
....
str1="1234567";
while(1);
}

相关帖子

沙发
yidou| | 2010-5-12 22:39 | 只看该作者
while(1); 一直这样不出问题么

使用特权

评论回复
板凳
易达口香糖| | 2010-5-12 22:39 | 只看该作者
这很常见啊

使用特权

评论回复
地板
xiaomifan|  楼主 | 2010-6-2 22:46 | 只看该作者
3# 易达口香糖
什么常见?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

305

帖子

1

粉丝