zyf部长 发表于 2022-9-4 11:12

虚拟串口收不到数据

STM32F042 USB 虚拟串口收不到数据

zyf部长 发表于 2022-9-4 11:16

一开始移置的标准库官方例程
在单片机接收数据的地方增加LED状态控制来观察

zyf部长 发表于 2022-9-4 11:19

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);
}
      
      LED_TOGGLE;//LED状态翻转
      
return USBD_OK;
}

supernan 发表于 2022-9-4 11:21

你有什么打算呢?或者你想知道什么?

jlyuan 发表于 2022-9-4 11:23

从上位机串口软件发送数据时第一次LED状态变化,再发就不动作了,也收不到数据,

zyf部长 发表于 2022-9-4 11:26

串口工具关闭串口再重新打开后第一次发送还能变化一次

renyaq 发表于 2022-9-4 11:29

再发送就不变了?

zyf部长 发表于 2022-9-4 11:44

开始以为标准版的固件不兼容最新的上位机驱动(我的系统是WIN7 X86 32位)又用CUBE生成了一个基于HAL的代码来测试,问题还是一模一样

zyf部长 发表于 2022-9-4 11:46

static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* USER CODE BEGIN 6 */
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
      
      LED_TOGGLE;
      
return (USBD_OK);
/* USER CODE END 6 */
}

heweibig 发表于 2022-9-4 11:48

不加LED闪烁是不是可以正常收

llljh 发表于 2022-9-4 11:50

是很亮还是不太亮,如果不太亮,那就是切换频率太快,如果一直有数据接收,那么还一直亮着。那就是频率太快。

dengdc 发表于 2022-9-4 11:52

你可以弄个全局变量,比如100次执行一下翻转指令,超过100清零,重新计数。

zyf部长 发表于 2022-9-4 11:54

问题已找到,是”串口调试助手V2.2“这个上软件可能在USB虚拟串口的情况下工作不正常,换成sscom42或ACCESSPORT137之后可以了,谢谢楼上两位!

jlyuan 发表于 2022-9-4 11:57

示波器能卡到波形吗

zyf部长 发表于 2022-9-4 11:59


一般这种低级错误总是不能避免 即便是老手也是如此

xxrs 发表于 2022-9-4 12:01

有时候重启电脑也好使

zyf部长 发表于 2022-9-4 12:04

明白了,多谢大家讨论这么多哈

Henryko 发表于 2022-9-4 21:33

越是注意不到的简单地方越容易出错啊

討厭和人归類 发表于 2022-9-22 09:57

为啥收不到数据啊?

地下縱情搖擺 发表于 2022-9-22 10:19

你看看你的线接的对不对,线序对不对
页: [1] 2
查看完整版本: 虚拟串口收不到数据