初级会员

- 积分
- 74
- 金钱
- 74
- 注册时间
- 2016-4-27
- 在线时间
- 12 小时
|

楼主 |
发表于 2016-5-16 16:27:02
|
显示全部楼层
我们公司无法发送附件到外网;
为了便于我们这些刚学习USB功能的小新们,大概我描述一下:
按照原子哥“实验51 USB读卡器(Slave)实验”那个教程::STM32F4开发指南-库函数版本_V1.1.pdf“,步骤基本不变:但我们添加的文件不一样:
USB_APP:添加:usb_bsp.c usbd_cdc_vcp.c usbd_desc.c usbd_usr.c
USB_DEVICE添加:usbd_core.c usbd_ioreq.c usbd_req.c usbd_cdc_core.c
USB_OTG添加:usb_dcd_int.c usb_core.c usb_dcd.c
仍按原子哥的说法:修改USB_APP;
我是通过USART3来实现转发的,由于在VCP中有一个#define EVAL_COM_IRQHandler USART3_IRQHandler ,所以只要在VCP下配置这个中断就行了;USART3_IRQHandler 中断需要屏蔽掉,不然会报错;
EVAL_COM_IRQHandler USART3_IRQHandler中断中只有VCP_DataTx (0,0),实现中断转发
特别注意几个地方:
1、先把USART3调试出来;USART3_IRQHandler 中做中断处理;
2、调试出来后,再把USART3_IRQHandler 屏蔽掉;
3、宏定义中一定要加入:USE_USB_OTG_FS
4、在usbd_usr.c中一定要加入USB的中断处理:
void OTG_FS_IRQHandler(void)
{
USBD_OTG_ISR_Handler(&USB_OTG_dev);
}
不然会死机;
5、在main。c中初始化USART3和USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb);;
6、剩下的就是USB自动处理了。至于你收发的数据需要怎么处理,每个人需求不一样,自己处理就行了。
7、有些文件的头文件,需要自己根据编译结果进行添加;这个我也忘记添加哪些了。直到调试没错就OK了;
重要的事:按照原子哥上面的步骤先操作好,添加的文件就在上面;
有问题的假设我正好也碰到过的,我一定会回复的。我觉得刚开始学的应该都是一样的困惑,希望得到帮助。
谢谢那些回复过我的,给我思路的人。谢谢大家。 |
|