问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

libusb文件,libusb.lib和usb.h。里面块传输部分usb_bulk_read只能读取char类型的数据,远远不能满足需要

发布网友 发布时间:2022-05-11 16:21

我来回答

1个回答

热心网友 时间:2023-10-15 04:28

你把发过去的unsigned int拆成2个unsinged char,高位那个为0,发过去后然后接受到的两个合并为一个unsigned int。问一下,这是16位的么?
我没有弄过这个通讯.我猜测应是端unsigned char型发生了隐式转换,成为了unsinged int(或unsigned short int)型,因此高8位均为0了。接受到的时候,将比特流按8位来解析,于是产生了2个数据,还有一个为0.
你可以尝试传入一个负数(char型的),应该会产生结果很大差异,因为这时候隐式转换将符号位作为值就有问题了。高8位都是1。接受到的数据0就应该会变成255。
(上述都只是我的猜测)具体工作原理不知....

我说下我的解决思路:
unsigned char convertDate[2];
unsigned char mask = 0xFF;
unsigned int transportDate; // 待传输的数据
convertDate[0] = transportDate & mask; // 低位字节
convertDate[1] = (transportDate >> 8) & mask; // 高位字节
将这个数组的两个字节发送过去,然后在那端进行合并。

接受那边每次接受两个数据进行一次转换
unsinged int receiveDate = 0;
receiveDate = rConvertDate[1] & mask; // 存储高位
receiveDate <<= 8; // 移动到高位
receiveDate = rConverDate[0] & mask; // 存储低位
合并得到的receiveDate就是转换得到的。

然后,你在自己写发送端、接收端数据处理函数对收发数据进行上述的处理。这样转换后显示应该会正常吧。
最后说下:就是传递的参数说了是unsigned 的,别传入负值了,不然转换解析也会有问题。会转换成很大的unsigned int值。追问兄弟,问题是上位机使用的libusb文件中的usb_bulk_read读取的是char型的,有符号的啊!
int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size,int timeout);这是该函数的声明。无法看到函数体,所以想求个类似该函数的,能读取unsigned int型的函数。
文件是libusb文件,开源专业用于usb通信的,唉,函数还是太少了啊

追答你说实际类型发的是unsigned int类型的,我就提了按这种方式的处理方法...
如果传递的包含int型,也可以这样处理。只不过在接受端的receiveDate就也应该是int型了,因为实际传过来的是位。然后根据receiveDate是unsigned int还是int自动进行解析了传递过来数据的符号位。
思路:
可以通过一个在函数中写if来判断你传递的数据是类型,返回标记1, 2,分别表示是unsigned还是非unsigned。然后在接收端的函数使用标记决定用哪个类型的receiveDate来接收,接收端定义2个接收的变量。
不知道这样可不可以,不过好像有点麻烦了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电视般有哪些尺寸 电视有哪些尺寸 寓意生命力顽强的男孩名字 美国产生金融危机了,铁矿石回降价吗? 铁矿石什么情况下会跌 从生物学的角度看,随地吐痰的主要危害是什么 随地吐痰会给我们带来什么样的危害? 痰是怎样形成的,随地吐痰有哪些危害 得力挂钟为什么不走了 人民大学、外交学院、中国政法、北京大学、复旦、华东政法等大学法学... 怎样配置MaxPacketSize大小,才能提高USB BULK模式的传输速率 怎么能从抖音号找到 微信里我把对方删除,然后更改,没有电话号码,对方还能找到我吗? 快手dj号改完别人还能找到我吗? 如何实现自定义 USB Bulk 批量传输设备 手机夜视仪软件是真的吗 索尼手机怎么开夜视 nokia哪款手机有夜视能力 可以当夜视仪用 用摄像头直接,接在手机上当夜视仪用可以吗? 徕卡M6钛机的问题 蹦来跳去(含反义词)要两个 帮忙想一个和“蹦来跳去”相似的词语(4个) AABB的词语四个, AABB形式的最好不要太简单 填入近义词组成成语什么来什么去 生龙活虎的近义词是不是蹦来蹦去 蹦来跳去是反义词是什么? 蹦来跳去的近意词 跳来跳去的近义词 鲁迅作品人物简介 煤气安全检查主要检查哪些 怎做糯米大枣 淘宝必逛好店会卖假货吗 凯立德车载导航升级下载地址链接? 微信里我把对方删除,然后更改,没有电话号码,对方还能找到我吗 被我删了的人 对方列表中还有我 但是我修改了 手机号 对方还能找到我吗? 修改后别人还能通过旧查找到我的手机号吗 有没有高人知道淘宝店铺&quot;藏宝优选店&quot;卖的是正品吗?这个7年的老店为什么成交量和关注量这么少?求解答 更改一下,别人还能找到这人吗? 北方户外地栽罗汉松冬季如何养护? 修改后别人还能通过旧查找到我的手机号吗 怎么取消关注 一级建造师聘用企业变更流程 一级建造师单位更名需要什么材料,以及怎么操作? 惠州的驾驶证,能在东莞补办吗 一级建造师跨省变更注册单位需要哪些手续? 惠州驾驶证到期了怎么换证 惠州办的驾照,该六年换证了,现人在东莞,把驾照从惠州转到东莞还需多交额外费用吗,望知道的告知,谢。 一级建造师要变更注册,但原单位不予配合办理,因变更注册需原单位盖章。怎么搞啊?求赐教_百度问一问 一级建造师注册后从此单位转到另一单位如何办理 驾驶证换证外地的可以在东莞换证吗 一级建造师变更聘用企业的程序?