USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 4650|回复: 7
打印 上一主题 下一主题

关于F4discovery的USB

[复制链接]

1

主题

0

好友

33

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2014-2-22 20:34:20 |只看该作者 |倒序浏览
[size=13.333333969116211px]我最近在搞F4discovery的USB,现在我想通过板子的CN5口连接USB线,再连接OTG线,最后与手柄(HID)相连,这是我大致的方向


[size=13.333333969116211px]但是现在USB呢,不算很清楚吧~研究过一点,我觉得一些基础的知识够用了,我也借鉴了网上一些人的建议,下载了一份F4D的官方例程,这个不知道是不是官方的,但是目前发现一个小错误,所以放弃了这个参考,如果哪位好朋友有STM32F407D HID的相关例程,可以给一份么?
[size=13.333333969116211px]希望大师就我的项目做一些指导,听说这个USB挺难的,OTG更难,一定是我对OTG的了解换不是很深刻,我所看到的就是一根线,两面都可以接USB口,不知道这个我需要写代码么?
[size=13.333333969116211px]我对OTG大胆猜测如下:
[size=13.333333969116211px]我是觉得可能和USB一样,需要一些描述符,枚举什么的来识别这个OTG上的东西,但是在程序怎么体现好呢?是不是很傻的思维?呵呵!还请大师斧正!
回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2014-2-23 10:52:31 |只看该作者
我收集的STM32F4 discovery HID例程,不知道是不是和你找的一样。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?我要注册

回复

使用道具 举报

1

主题

0

好友

33

积分

新手上路

Rank: 1

板凳
发表于 2014-2-27 19:48:52 |只看该作者
baiheee 发表于 2014-2-23 10:52
我收集的STM32F4 discovery HID例程,不知道是不是和你找的一样。

首先谢谢版主,由于USB的程序结构比较复杂,一直没有回复!!!谢谢!
其次,版主给我的程序不知道是不是KEIL编译的,怎么没有生成的图标,难道是版主上传的时候没有完全?
另外我想问一下,程序里只有鼠标和键盘的例子,但我的是手柄的,这样的话,需要修改些什么啊!
希望版主解答下!!
回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2014-2-28 21:39:57 |只看该作者
USB求学者 发表于 2014-2-27 19:48
首先谢谢版主,由于USB的程序结构比较复杂,一直没有回复!!!谢谢!
其次,版主给我的程序不知道是不是 ...

没有提供开发环境对应的工程文件,应该是keil和IAR都可以用,在相应开发环境中导入这些文件就可以。鼠标或键盘的例子改手柄,主要修改报告描述符,当然您需要仔细学一下HID设备的开发过程才行呢
回复

使用道具 举报

1

主题

0

好友

33

积分

新手上路

Rank: 1

5#
发表于 2014-3-1 17:39:32 |只看该作者
版主,你好!
请问这个USB上位机怎么用?我下载了以后发现是一个工程。。。还是和你发的那种一样。。。
USB程序这一块,我看完以后,有许多疑问:
******************************************************************************
uint8_t USBH_Disconnected (USB_OTG_CORE_HANDLE *pdev)
{
  pdev->host.ConnSts = 0;
//  printf("设备断开00000\n");
  return 0;  
}

uint8_t USBH_SOF (USB_OTG_CORE_HANDLE *pdev)
{
  /* This callback could be used to implement a scheduler process */
  return 0;  
}
这个里面为啥返回都是0,我查过了好几个版本都是这样。。。
******************************************************************************
void USBH_Process(USB_OTG_CORE_HANDLE *pdev , USBH_HOST *phost)
{
  volatile USBH_Status status = USBH_FAIL;
  /* check for Host port events */
  //轮询Host端口事件
          //(HCD_IsDeviceConnected(pdev) == 0)属于硬件层
  if ((HCD_IsDeviceConnected(pdev) == 0)&& (phost->gState != HOST_IDLE))
  {
//          printf("****没连接+不空闲\n");
    if(phost->gState != HOST_DEV_DISCONNECTED) //如果状态是没有设备连接
    {
//          printf("****连接***\n");
      phost->gState = HOST_DEV_DISCONNECTED;   //那么设置HOST状态机为没有连接  
        }
  }

这个我怎么感觉逻辑不通啊*****************************************************************************
还有现在 我 我debug了下~    当判断了if ((HCD_IsDeviceConnected(pdev) == 0)&& (phost->gState != HOST_IDLE)) 这个之后                                          就没有下面的,直接进入     phost->usr_cb->DeInit();//执行用户回调:重初始化         这里啥都没做。。。//


这是咋回事?








回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2014-3-1 22:07:17 |只看该作者
USB求学者 发表于 2014-3-1 17:39
版主,你好!
请问这个USB上位机怎么用?我下载了以后发现是一个工程。。。还是和你发的那种一样。。。
U ...

还是先把USB的枚举过程搞清楚吧,否则怎么也看不明白的。OTG这块我也不熟
回复

使用道具 举报

1

主题

0

好友

33

积分

新手上路

Rank: 1

7#
发表于 2014-3-4 20:07:52 |只看该作者
baiheee 发表于 2014-3-1 22:07
还是先把USB的枚举过程搞清楚吧,否则怎么也看不明白的。OTG这块我也不熟

版主,我的USB鼠标和键盘已经可以枚举了~
但是做出来的东西有些延迟~
不知道您遇到过这种情况~
回复

使用道具 举报

1

主题

0

好友

33

积分

新手上路

Rank: 1

8#
发表于 2014-3-7 01:00:06 |只看该作者
baiheee 发表于 2014-3-1 22:07
还是先把USB的枚举过程搞清楚吧,否则怎么也看不明白的。OTG这块我也不熟

版主,我已经枚举成功了~但是后期的数据怎么处理啊~实在是想不通!
那个decode函数究竟怎么写?
回复

使用道具 举报

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

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-4-20 20:11 , Processed in 0.056111 second(s), 19 queries .

百合电子工作室版权所有
回顶部