STM32F103RET6使用cubeMX生成FarFs挂载SD卡,并开启DMA
L9663驱动开发
是不是配置哪里还不对?
STM32F103RCT6断电以后,ADC会漏电
程序不能仿真,下载后不能运行。无报错无警告
新手求助STM32c8t6 0.96寸4针脚OLED 屏幕一半亮一半花屏。
STM32F103 RTC 休眠唤醒后 读到的时间不对
STM32F103的串口1(PA9/10)映射到PB6/7
简单平稳过度-回顾2025&说说我心中的ST中文论坛
Error in final launch sequence: Failed to execute MI command: target remote localhost:61234
微信公众号
手机版
/***
deepseek解答:
要解决这个问题,核心思路是在串口助手(作为USB主机)重新打开串口时,主动清空STM32内部USB CDC的发送缓冲区 。
核心解决方案:检测“串口打开”事件并清空缓冲区
最有效的方法是,在STM32的USB CDC驱动代码中,捕获主机(你的电脑)重新建立连接的事件,并在此处执行缓冲区的清空操作。
在STM32的USB库中,“串口助手打开串口”这个动作,通常会触发USB主机向设备发送一个
CDC_SET_LINE_CODING或CDC_GET_LINE_CODING的标准请求。你可以利用这个事件作为“清空缓冲区”的信号。通常,这个处理逻辑位于
usbd_cdc.c或usbd_cdc_if.c文件中的CDC_Control_FS函数里。你需要修改
CDC_Control_FS函数,在CDC_SET_LINE_CODING或CDC_GET_LINE_CODING分支中添加清空发送缓冲区的代码。<br /> <br />
好的 谢谢您的解答
当然,这个需要使用的串口助手软件支持才行。
<br /> <br />
您好!怎么知道串口助手已经打开?
<br /> <br /> | 在 STM32 设备端的 USB CDC 类请求处理代码中,会接收并处理主机发来的 SET_CONTROL_LINE_STATE 请求。根据该请求中的 DTR 状态,可以判断 PC 端串口助手当前是打开还是关闭。当 DTR=1 时,可认为串口助手已打开;当 DTR=0 时,可认为串口助手已关闭,此时设备端就不应继续发送数据。 |<br /> | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |<br /> <br />