打印
[STM32F4]

407使用usb vcp例程中和USART1冲突

[复制链接]
2563|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用usb FS 2.1库的vcp例程很顺利,但是在VCP_DataRx()这个函数出现一点问题,请教一下
使用的OTG_FS device
原本打算只是在接收函数里面用串口1发送出来,usb转串口模块给电脑显示验证一下,
static uint16_t VCP_DataRx (uint8_t* Buf, uint32_t Len){  uint32_t i;    for (i = 0; i < Len; i++)  {    USART_SendData(USART1, *(Buf + i) );    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);   }    return USBD_OK;}结果vcp的电脑端只能发生一次,然后usb就复位了,串口助手就不能再打开这个com口了,
然后控制变量方法的测试排除
vcp的发送接收都是正常的,完全没有问题,但是整个程序里面不能有串口USART1的输出,可以输入并且接收没有问题,唯独不能使用USART1输出
我测试了串口2输出也正常,没有问题,串口1只要输出usb就复位 com口就不能用了
想难道是串口1和FS的引脚有冲突么  

感觉唯一可能就  USART1_CK    OTG_FS_SOF  向大家请教下可能的问题

QQ截图20141127191325.png (13.83 KB )

QQ截图20141127191325.png
沙发
simplelife_nick|  楼主 | 2014-11-27 19:20 | 只看该作者
额  是PA9  USART1_TX的冲突吧?

使用特权

评论回复
板凳
simplelife_nick|  楼主 | 2014-11-27 19:28 | 只看该作者
/////////////////////////////这个原因么///////////////////////////////////////////////////
注意: 要在B 器件或仅作设备配置情形下构建总线供电的设备方案,需要添加一个外部调压器,用
于从VBUS 生成VDD 芯片电源。
关闭VBUS 感应选项可以释放VBUS 引脚。可通过在OTG_FS_GCCFG 寄存器中将
NOVBUSSENS 位置1 来完成此操作。这种情况下,内部将VBUS 视为始终处于VBUS 有效
电平(5 V)。

使用特权

评论回复
地板
simplelife_nick|  楼主 | 2014-11-27 20:07 | 只看该作者
在 usb_conf.h中关闭电源敏感就好了
/****************** USB OTG MISC CONFIGURATION ********************************/
/*  关闭电源敏感 释放VBUS脚 PA9 也就是USART1_TX脚 这样usart1发送数据不会usb复位 */
//#define VBUS_SENSING_ENABLED

要自己慢慢找问题啊

使用特权

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

本版积分规则

9

主题

49

帖子

0

粉丝