完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用VCP官方库,修改VCP_DataTx函数如下: static uint16_t VCP_DataTx(unit8_t* Buf, uint32_t Len)
{ u8 i; if(linecoding.datatype == 7) {} else if (linecoding.datatype == 8) { for(i=0;Soft_VER!=0;i++) { APP_Rx_Buffer[APP_Rx_ptr_in]=Soft_VER; APP_Rx_ptr_in++; if(APP_Rx_ptr_in == APP_RX_DATA_SIZE) {APP_Rx_ptr_in = 0;} } } } 字符串Soft_VER里面有30个数据; 发现底层在往上位机发送数据时,上位机会概率性收不到,只要发生收不到的情况,之后发送的数据上位机全部都收不到; 通过调试对比发现: 上位机能收到数据时,每次发送数据,底层会进两次DCD_HandleInEP_ISR中断,第一次是进入(diepint.b.emptyintr),第二次进入(diepint.b.xfercoml); 上位机收不到数据时,只进入一次这个中断(diepint.b.emptyintr) 想请问是什么原因,万分感谢!!!!stm |
|
相关推荐
2个回答
|
|
接收异常数据丢失是不是超过字节了
|
|
|
|
STM32F429 VCP(虚拟串口通信)上位机概率性收不到数据的问题可能由多种原因引起。在分析问题之前,我们需要了解STM32F429的VCP功能以及您提供的代码片段。
STM32F429是一款基于ARM Cortex-M4处理器的微控制器,具有丰富的外设和较高的性能。VCP是一种虚拟串口通信功能,允许STM32F429通过USB接口与上位机进行串行通信。在STM32F429中,VCP功能通常通过USB设备固件库(USB Device Firmware Library,简称UDF)实现。 您提供的代码片段是VCP_DataTx函数的修改版本,该函数用于发送数据。函数接收两个参数:一个指向数据缓冲区的指针(Buf)和一个表示数据长度的整数(Len)。在函数内部,您检查了linecoding.datatype的值,这是一个与串口通信相关的参数,用于表示数据位(data bits)的数量。您的代码在linecoding.datatype为7或8时执行不同的操作。 现在,我们来分析可能导致上位机概率性收不到数据的原因: 1. 缓冲区溢出:如果发送的数据量超过了缓冲区的最大容量,可能会导致数据丢失。请确保您的缓冲区足够大,以容纳要发送的所有数据。 2. 传输速率不匹配:如果STM32F429和上位机之间的通信速率不匹配,可能会导致数据丢失或错误。请检查您的代码,确保设置了正确的波特率和数据位。 3. USB中断处理:STM32F429的USB通信依赖于中断处理。如果中断处理不当,可能会导致数据传输不稳定。请检查您的中断处理函数,确保它们正确地处理了USB传输事件。 4. 上位机软件问题:上位机的串口通信软件可能存在问题,导致数据接收不稳定。尝试使用不同的上位机软件,以排除软件问题。 5. 硬件连接问题:检查STM32F429与上位机之间的USB连接,确保连接稳定且无损坏。 6. 电源干扰:电源干扰可能会影响STM32F429的USB通信。请确保您的电源稳定且无干扰。 7. 代码逻辑问题:您的代码中可能存在逻辑错误,导致数据传输不稳定。仔细检查您的代码,确保所有条件分支和循环都正确执行。 为了解决这个问题,您可以尝试以下步骤: 1. 确保缓冲区足够大,以容纳要发送的所有数据。 2. 检查并设置正确的波特率和数据位。 3. 检查并优化中断处理函数,确保它们正确地处理了USB传输事件。 4. 尝试使用不同的上位机软件。 5. 检查STM32F429与上位机之间的USB连接。 6. 确保电源稳定且无干扰。 7. 仔细检查并调试您的代码,以排除逻辑错误。 通过以上步骤,您应该能够找到并解决STM32F429 VCP上位机概率性收不到数据的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
743浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
563浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 18:40 , Processed in 0.690076 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号