OpenEdv-开源电子网

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

数据流中检索特定4个字节

[复制链接]

15

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-12
在线时间
32 小时
发表于 2017-10-13 11:54:57 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 lmlm512 于 2017-10-13 12:23 编辑

          有一个数据流,从USB_CDC中连续不断传输。数据是串口接收透传到USB_CDC发送的,在数据流中检索数据包0x80 0x40 0x00 0x80 0x00 是否已经透传通过了。                 
          if(p_data->RxXferHead!=p_data->RxXferTail)  //检索数据是否有数据
          {
                USBH_CDC_Transmit(&hUsbHostFS,p_data->RxXferTail,1);  //有数据就通过USB发送
              //USBH_Delay(5);                 
                 memcpy(CheckData,p_data->RxXferTail,5);               
                if(CheckData[0]==0x80)                                         //debug 断点1
                    if(CheckData[1]==0x40)
                         if(CheckData[2]==0x00)
                            if(CheckData[3]==0x80)
                                if(CheckData[4]==0x00)
                                  {
                                      GetTheData=1;                                 //该数据被发送
                                   }
                 p_data->RxXferTail++;                                            //发送下一个字节
                 if(p_data->RxXferTail>=p_data->RxXferSize+p_data->pRxBuffPtr)       //指针越界,恢复到数组头 FIFO
                   p_data->RxXferTail=p_data->pRxBuffPtr;                                                
           }

1.  不加USBH_Delay(5);  这句,CheckData这个数组里没有数据,GetTheData=1;不会执行;
        加USBH_Delay(5);  这句, CheckData这个数组里有数据,GetTheData=1;会执行;
2.  不加USBH_Delay(5);  这句 ,在if(CheckData[0]==0x80)  的地方设一个断点,仿真测试正常,CheckData这个数组里有数据,GetTheData=1;会执行;


不知道什么问题,或者大家有什么思路没。

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

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2017-10-14 12:21:28 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-10-15 00:38:58 | 显示全部楼层
帮顶
回复

使用道具 举报

15

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-12
在线时间
32 小时
 楼主| 发表于 2018-9-27 20:44:52 | 显示全部楼层
  加USBH_Delay(5),原因暂不明确
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-9-28 01:42:34 | 显示全部楼层
lmlm512 发表于 2018-9-27 20:44
加USBH_Delay(5),原因暂不明确

加这个就好了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 05:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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