OpenEdv-开源电子网

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

诡异的字符串处理的错误问题,请大侠们指示

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2015-10-29
在线时间
0 小时
发表于 2015-10-29 09:50:41 | 显示全部楼层 |阅读模式
5金钱
AVR单片机,STMega32. 
声明两个串。 Buff为缓冲,读取串口数据。RxString 是存放短消息的buff中第2行数据。
uchar buff[512];
uchar RxString[255];
以上为定义的两个串。

问题是: 如果长串的数据,如果不用这句显示DisplayOneChar(15,1,*buf);那么RxString 就不能完整解码。总缺3到4个字符。可是我不需要显示这些数据。请高手指教。

uchar  ReadLine(uchar *buf,uchar *RxStr,uchar lineIndex)
{
  uchar c=0;
  uchar flag=0;
  uchar line=0;
    while(*buf)
    {
     if(*buf==0x0A)
     {
      line++;
      if( lineIndex ==line)flag=1; else flag=0;
     }
     if ((flag) &&(*buf>0x10)) {
        *dat=*buf;
      DisplayOneChar(15,1,*buf);
       dat++;
       c++; }
     buf++;
    }
 *dat = 0;
 return c;
  }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2015-10-29
在线时间
0 小时
 楼主| 发表于 2015-10-29 11:43:46 | 显示全部楼层
事实证明,这个地方需要等待。   DisplayOneChar(15,1,*buf); 被Delay(1);代替,程序能够完整读出数据。 可是为什么这个地方需要延时?请高手指点。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-10-29 21:53:10 | 显示全部楼层
帮顶.....
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2015-10-29
在线时间
0 小时
 楼主| 发表于 2015-10-30 13:16:15 | 显示全部楼层
感谢原孑板主,看上去AVR版不如STM32热。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 12:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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