在F28377S中每1ms发送140字节,用UartAssist串口调试助手接受数据,用bus hand监控参数,可以看到大部分1ms是140字节,偶尔少十几字节,后续又多几十字节,总体上数据应该没有丢,时间间隔是1ms
用另一上位机(串口接收+波形处理功能),运行一段时间后F28377S无法发送报文,可以仿真看到USBBufferSpaceAvailable()剩余的buffer空间总是很小,无法正常发送,这一上位机因需要处理波形,所以sleep10ms才接收一下串口数据,从bushand看到F28377S的数据是每10ms有一次数据,长度也是1200以上,刚开始运行的一段时间是可以正常接收报文并画出波形的,过一段时间F28377S就不发报文了,正常时时间间隔是10ms左右,偶尔会有20ms。
虽然上位机不处理波形用单一线程一直读串口数据,会没有问题,但为了处理数据而多一处理数据线程,最终导致10ms发一请求也可以正常运行一段时间再发送失败的
从现象看像上位机来不及发请求,但如果我将F28377S整体程序减少,用此上位机也是可以正常接收并处理波形的。
一直知道F28377S需要上位机发请求再发数据,但这个请求好像与上位机读串口没太大关系,因为F28377S是1ms发的,而上位机读串口句柄是10ms左右发的
这样分析觉得上位机和F28377S usb都有问题,请教这种在F28377S这边怎么查?急问!
Annie Liu:
为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上https://e2e.ti.com/support/microcontrollers/c2000/f/171,将由资深的工程师为您提供帮助。我们的E2E英文社区有TI专家进行回复,并得到全球各地工程师的支持,分享他们的知识和经验。