当前位置:首页 > 单片机 > 单片机
[导读]当从虚拟串口到真实串口发数据时,没有错误,但发送一个稍微大一点的文件时(如1M),误码率很高。不知是为什么?其中:int main(void){#ifdef DEBUG debug();#endif Set_System(); Set_USBClock(); USB_Interrupts

当从虚拟串口到真实串口发数据时,没有错误,但发送一个稍微大一点的文件时(如1M),误码率很高。不知是为什么?
其中:
int main(void)
{

#ifdef DEBUG
debug();
#endif

Set_System();
Set_USBClock();
USB_Interrupts_Config();
USB_Init();

while (1)
{
if (count_out != 0)
{
USB_To_USART_Send_Data(&buffer_out[0], count_out);//这句是发数据的函数,原型如下。
count_out = 0;
}
}
}
其中:
void USB_To_USART_Send_Data(u8* data_buffer, u8 Nb_bytes)
{
u32 i;

for (i = 0; i < Nb_bytes; i++)
{
USART_SendData(USART1, *(data_buffer + i));

while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
}
}
望高手指教。


------解决方案--------------------
首先你的程序有问题,首先你的count_out应该是在USB收到数据是修改的吧,然后在main中判断,如果你在USB_To_USART_Send_Data()函数处理过程中又收到数据会改变count_out值,而退出后又将count_out改成0了,这肯定会丢数。建议你设计修改一下这个缓存转发机制。

另外虚拟串口发数据发的太快了,发送大数据量时实际串口发不过来了。打开虚拟串口时的参数限制不了USB端的虚拟串口的速度,这个参数只是传给STM32让STM32设置实际串口参数用的。

解决办法:

(1). 自己写USB转串口的驱动,在驱动发送数据的代码中限制发送速度。

(2). 自己写上位机的串口发送程序,加上协议,建立发送应答机制,保证数据发送成功。

(3). 增大STM32的RAM空间,大到可以缓存下你发送的最大文件,STM32收到后先缓存下来然后再从串口发
------解决方案--------------------

C/C++ code
voidUSB_To_USART_Send_Data(u8*data_buffer,u8Nb_bytes){u32i;for(i=0;i


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

今天,小编将在这篇文章中为大家带来一种适老化跌倒检测预警系统硬件设计的有关报道,通过阅读这篇文章,大家可以对该类系统设计具备清晰的认识,主要内容如下。

关键字: STM32 单片机 微控制器

在下述的内容中,小编将会对手把手教大家如何去实现RA UART实现串口波特率自适应,如果串口波特率自适应内容是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 串口 波特率 UART

6月3日,领先的高性能连接解决方案提供商Valens Semiconductor (纽约证交所代码:VLN,以下简称Valens) 宣布收购专注于高级自动化和控制技术的开创性公司Acroname。通过此次收购,Valen...

关键字: USB 机器视觉 自动化

全球电源解决方案领导者全汉集团将于2024 年台北国际电脑展(Computex 2024) 上展示其创新产品。包含边缘AI、网路通讯和 USB PD 电源解决方案。

关键字: USB 电脑 通讯 电源解决方案

威锋电子作为USB4、SuperSpeed USB、USB PD及显示器控制芯片领域的代表性企业,今日正式宣布,其全新产品VL605 USB-C转HDMI 2.1信号转换器已量产上市。该产品不仅支持USB PD 3.1...

关键字: 转换器 显示器 USB

USB Type-C就是这样一个例子;USB Type-C旨在创建一个用于高速数据传输和电力传输的标准接口,仅需一根电缆,取代需要多根电缆的需求

关键字: USB PD特性 移动电源

智能合灯控制系统由环境光照检测、人体接近检测、语音识别、按键控制、合灯控制、数据显示、蓝牙通信、报警提示功能模块组成。

关键字: STM32 智能台灯

捡球机的移动装置以直流电机驱动,寻球装置以摄像头图像传感器模块构成,并搭配以图像检测算法。避障装置以红外检测和报警模块为主,以防在行动过程中触碰障碍物。

关键字: STM32 捡球机

ST于近期发布了“STM32WBA”无线MCU、“STM32U0”超低功耗入门级MCU、“STM32H7R/S”高性能MCU和“STM32MP2”四大重磅新品,还透露将会在今年推出18nm的STM32新品。

关键字: STM32 MCU NPU AI 超低功耗

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机
关闭
关闭