STM32F105使用CubeMX生成USB虚拟串口,USB的发送函数不能与USART1的发送函数一起用

2019-07-14 14:20发布

最近用CubeMX 生成的USB虚拟串口的程序,发现一个问题,USB的发送函数不能与USART1的发送函数一起用,主循环里面如果有USB和USART1的发送函数,串口助手只有USART1的可以收到数据,USB虚拟串口没有数据上传,检查USB的发送状态发现一直处于BUSY。
如果把HAL_UART_Transmit(&huart1, temp, 8, 1000);去掉USB虚拟串口接收数据又是正常的。

请教各位指点指点!感激不尽啊

uint8_t temp[8]={"abcdefgh"};

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USB_DEVICE_Init();
  MX_USART2_UART_Init();
  while (1)
  {
          HAL_Delay(500);
          HAL_GPIO_TogglePin(GPIOC, LED4_Pin);
          CDC_Transmit_FS(temp, 8);
          HAL_UART_Transmit(&huart1, temp, 8, 1000);
  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
liangxxxxx
1楼-- · 2019-07-15 07:23
脑洞大赛20 发表于 2019-1-28 10:27
应该是没有影响的,好好查查,说不定是硬件

看了一些资料知道了大概,UAB枚举的时候需要用到VBUS引脚,而VBUS引脚与USART1的引脚复用,就是这个原因,使用USB设备的时候PA9要接5V,USART1只能映射到其他引脚上面了,我目前是这样解决的,不知道其他人是怎么解决的。

一周热门 更多>