打印

STM32 usb通信 USB测试软件

[复制链接]
5905|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pingandpeng|  楼主 | 2012-3-14 13:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想知道STM32F103CB  的usb通信配置,程序我都看了好几遍了可就是不明白怎么去修改别人的程序!无耐之下我还看了一遍USB通信协议,内容太多了,看了两天结果一无所获! 在此求助大家帮我找一个USB测试软件,通过这个软件我可以通过USB接口给STM32发送一串数据,然后可以保存到STM32中。我才在这个论坛里注册的,所以还没有积分, 对于帮助自己的人,在此我表示诚挚的谢意!
沙发
香水城| | 2012-3-14 14:04 | 只看该作者
两天就看了一遍USB通信协议,你太伟大了!  我刚学USB的时候,花了一个半月才看完一遍,真是痛苦的经历。

使用特权

评论回复
板凳
logokfu| | 2012-3-14 14:09 | 只看该作者
我才在这个论坛里注册的,所以还没有积分pingandpeng 发表于 2012-3-14 13:37


这个积分永远都是那么多,不管你给别人多少积分,自己的积分是不会少的。:lol

使用特权

评论回复
地板
香水城| | 2012-3-14 14:30 | 只看该作者
呵呵,俺做个广告,这个东西应该是你要的:http://www.rpmsys.com/root2.htm

使用特权

评论回复
5
sinadz| | 2012-3-14 21:43 | 只看该作者
lZ看了两天是一无所获,香主花一个半月入门了,还是很有区别的:lol

使用特权

评论回复
6
xsgy123| | 2012-3-14 21:50 | 只看该作者
USB通信协议还是比较难理解的

使用特权

评论回复
7
johnsonz99| | 2012-3-15 08:21 | 只看该作者
可以用bushond软件。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
pingandpeng + 1
8
icecut| | 2012-3-15 09:17 | 只看该作者
你还是搞usb转串口吧...

使用特权

评论回复
9
pingandpeng|  楼主 | 2012-3-15 10:33 | 只看该作者
;P 其实我啥也没看懂! 2# 香水城

使用特权

评论回复
10
pingandpeng|  楼主 | 2012-3-15 10:35 | 只看该作者
谢谢,这个软件对我很有用哦:) 7# johnsonz99

使用特权

评论回复
11
ggq1982| | 2012-3-15 13:38 | 只看该作者
这个对我也是可以的

使用特权

评论回复
12
dongjiajia| | 2012-3-27 20:43 | 只看该作者
谁有stm3210c  usb-otg-fs 固件库的说明文档吗,usb的固件函数太多了,想找个说明文档了解一下!

使用特权

评论回复
13
hanzhen654| | 2020-4-11 16:51 | 只看该作者
看了下 usb的设备驱动  
USB设备功能初始化,4个端点,8个通道
void USB_DeviceInit( void )                                    
{       
    R8_USB_CTRL = 0x00;                                        // 先设定模式,取消 RB_UC_CLR_ALL

    R8_UEP4_1_MOD = RB_UEP4_RX_EN|RB_UEP4_TX_EN|RB_UEP1_RX_EN|RB_UEP1_TX_EN;    // 端点4 OUT+IN,端点1 OUT+IN
    R8_UEP2_3_MOD = RB_UEP2_RX_EN|RB_UEP2_TX_EN|RB_UEP3_RX_EN|RB_UEP3_TX_EN;    // 端点2 OUT+IN,端点3 OUT+IN

    R16_UEP0_DMA = (UINT16)(UINT32)pEP0_RAM_Addr;
    R16_UEP1_DMA = (UINT16)(UINT32)pEP1_RAM_Addr;
    R16_UEP2_DMA = (UINT16)(UINT32)pEP2_RAM_Addr;
    R16_UEP3_DMA = (UINT16)(UINT32)pEP3_RAM_Addr;

    R8_UEP0_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;
    R8_UEP1_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG;
    R8_UEP2_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG;
    R8_UEP3_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK | RB_UEP_AUTO_TOG;
    R8_UEP4_CTRL = UEP_R_RES_ACK | UEP_T_RES_NAK;
                                
    R8_USB_INT_FG = 0xFF;                                              // 清中断标志
    R8_USB_INT_EN = RB_UIE_SUSPEND | RB_UIE_BUS_RST | RB_UIE_TRANSFER;

    R8_USB_DEV_AD = 0x00;
    R8_USB_CTRL = RB_UC_DEV_PU_EN | RB_UC_INT_BUSY | RB_UC_DMA_EN;  // 启动USB设备及DMA,在中断期间中断标志未清除前自动返回NAK
    R8_UDEV_CTRL = RB_UD_PD_DIS|RB_UD_PORT_EN;                                                 // 允许USB端口       
}

使用特权

评论回复
14
hanzhen654| | 2020-4-11 16:53 | 只看该作者
端点数据上传
void DevEP1_IN_Deal( UINT8 l )
{
    R8_UEP1_T_LEN = l;
    R8_UEP1_CTRL = (R8_UEP1_CTRL & ~MASK_UEP_T_RES)| UEP_T_RES_ACK;
}

/*******************************************************************************
* Function Name  : DevEP2_IN_Deal
* Description    : 端点2数据上传
* Input          : l: 上传数据长度(<64B)                                                          
* Return         : None
*******************************************************************************/
void DevEP2_IN_Deal( UINT8 l )
{
    R8_UEP2_T_LEN = l;
    R8_UEP2_CTRL = (R8_UEP2_CTRL & ~MASK_UEP_T_RES)| UEP_T_RES_ACK;
}

/*******************************************************************************
* Function Name  : DevEP3_IN_Deal
* Description    : 端点3数据上传
* Input          : l: 上传数据长度(<64B)                                                          
* Return         : None
*******************************************************************************/
void DevEP3_IN_Deal( UINT8 l )
{
    R8_UEP3_T_LEN = l;
    R8_UEP3_CTRL = (R8_UEP3_CTRL & ~MASK_UEP_T_RES)| UEP_T_RES_ACK;
}

/*******************************************************************************
* Function Name  : DevEP4_IN_Deal
* Description    : 端点4数据上传
* Input          : l: 上传数据长度(<64B)                                                          
* Return         : None
*******************************************************************************/
void DevEP4_IN_Deal( UINT8 l )
{
    R8_UEP4_T_LEN = l;
    R8_UEP4_CTRL = (R8_UEP4_CTRL & ~MASK_UEP_T_RES)| UEP_T_RES_ACK;
}

使用特权

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

本版积分规则

0

主题

18

帖子

0

粉丝