• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > DSP通过CY7C68001实现USB串口的程序看不明白

DSP通过CY7C68001实现USB串口的程序看不明白

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了cy7c68001,cy7c68001中文资料,dsp串口通信,dsp串口烧写程序,dsp串口等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:DSP通过CY7C68001实现USB串口的程序看不明白
描述:

DSPUSB串口扩展c程序

我在开发板上使用的USB模块,进行实验,发现有些地方看不明白。求指教!
下面是写入端点6的程序:
case ENDPOINT6:
for(i = 0;i<0x100;i++)
{
  epdataw1[i] = i*2;
}
for(i = 0;i<0x50;i=i+2)
{
epdataw[i/2] = epdataw1[i]+(epdataw1[i+1]<<8);
}
/*如果发送小于整数据包的数据时,设置RecievedDataLongth*/
RecievedDataLongth = 0x3f;
/*读当前FIFO的状态,是否已满*/
regValue = *USB_STS;
FifoWriteCnt = 0;
SX2_FifoWrite(ENDPOINT6,&epdataw[0],Fifolong);
if(hshostlink ==TRUE)//2.0标准,高速模式
{
  Write_SX2reg(SX2_INPKTEND, 0x06);
}
setupBuff[1] = 0;
/*写0到EP0的计数寄存器,结束本次控制握手*/
Write_SX2reg(SX2_EP0BC, 0);
break;
我想请教的是:1、在计算epdataw时,程序使用了一个左移八位,那不相当于乘以256啊?我算了前几个数据依次是512,772,12568.很明显这与最后通过上位机读出的数据是不符的。上位机读出的数据是0,2,4,6...
2、我试着将SX2_FifoWrite(ENDPOINT6,&epdataw[0],Fifolong);输出至端口6的数组改为epdataw1.输出的结果是0,0,2,0,4,0,6而实际数组为0,2,4,6,8,10...不符,这是为什么啊?
3、程序中,这两段regValue = *USB_STS;
FifoWriteCnt = 0;有作用吗?
4、下面这段话,我百度到说是让FIFO输出的作用,请问是吗?Write_SX2reg(SX2_INPKTEND, 0x06);
多谢各位指教!


解决方案1:

引用
1、在计算epdataw时,程序使用了一个左移八位,那不相当于乘以256啊?我算了前几个数据依次是512,772,12568.很明显这与最后通过上位机读出的数据是不符的。上位机读出的数据是0,2,4,6...

看程序epdataw[]是16位的数据,epdataw1[]是8位的,那个左移8位操作是把2个8位的数拼成16的数据.你看下报告描述符里的报告数据是不是16位的
引用
下面这段话,我百度到说是让FIFO输出的作用,请问是吗?Write_SX2reg(SX2_INPKTEND, 0x06);

根据程序猜测是的,是告诉硬件数据以放入FIFO准备就绪,可以扔出去了
引用
2、我试着将SX2_FifoWrite(ENDPOINT6,&epdataw[0],Fifolong);输出至端口6的数组改为epdataw1.输出的结果是0,0,2,0,4,0,6而实际数组为0,2,4,6,8,10...不符,这是为什么啊?

参考1,报告数据是16位的,你扔个0过去它当然会发送0x00,0x00了
引用
3、程序中,这两段regValue = *USB_STS;
 FifoWriteCnt = 0;有作用吗?

仅看这段程序没什么用,不过猜测即使这里没用也是留给DEBUG用的


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DSP通过CY7C68001实现USB串口的程序看不明白

相关文章

  • 2017-06-05 共射放大器的一点疑惑
  • 2017-06-05 用dnspod的dns,部分地区无法访问网站,把电脑ipv4的dns设为8888就可以访问
  • 2017-06-05 WINCE60SD卡唤醒后无法被识别
  • 2017-06-05 rewrite_by_lua更改变量值,对应nginx变量值无变化
  • 2017-06-05 DDKgenprintdll安装
  • 2017-06-05 CPUiowait与异步IO有关系吗?
  • 2017-06-05 写了一个USB的视频流捕获驱动,能安装成功。但打开AMCAP的时侯,在device菜单中没有这个device?
  • 2017-06-05 USB过滤驱动程序的安装与调试问题
  • 2017-06-05 初学PCL的问题
  • 2017-06-05 谁有<<VC++NET开发驱动程序详解>>,里面用VC++net怎样设置环境,才能开发驱动啊?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 4412开发板上的开发环境
    • 为什么可以用_outp?
    • 对IPCAM编程请教
    • 百思不解~,关于中断编程,达达帮忙~
    • 24L01发送完成中断TX_DSIRQ不产生
    • 关于《计算机组成与设计》中单周期实现的疑问
    • MSP430F149单片机无法进入USART接收中断
    • WinCE60系统下运行C#程序偶尔会休眠唤不醒
    • 如何在驱动层用TDI实现多播
    • 做不出来我就没机会见到你们了:(

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有