我的上位机程序要实现把usb(ch372)传递过来的数据进行简单地处理并显示出来。可以用一个单线程实现吗?在线程里如何做到可以随时把usb传过来的数接收到,用什么判断数据过来了?
热门产品 :
CH32X035: 32位USB+USB PD单片机
我的上位机程序要实现把usb(ch372)传递过来的数据进行简单地处理并显示出来。可以用一个单线程实现吗?在线程里如何做到可以随时把usb传过来的数接收到,用什么判断数据过来了?
如果单次传输的数据长度在8字节以内, 可以使用中断回调函数来处理。在上位机用 CH375SetIntRoutine( // 设定中断服务程序 设定一个中断上传回调函数,设定好后,只要中断端点有数据,中断回调函数就会被调用,不占用主线程的时间片。具体使用可以参照外网CH372EVT.ZIP\CHECK\PUB\DEMO的例子。
如果长度大于8字节怎么办呢?
我用中断端点上传数据时,速度可以达到多大?我的速度要在1ms中上传50个数,可以吗?
中断端点1ms 传一次,一次最多8个字节,那你只能用批量端点传输了,有两个方法: 1.做一个循环,不停地去读批量端点的数据,有数据来就处理一下; 2.如果传输不频繁,可以在批量传输前通过中断端点通知应用层调用批量端点读函数来读,避免长时间等待;