电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
求助QT环境下USB-CAN
已解决
73482
个问题
已帮助
5993
位优秀工程师
求助QT环境下USB-CAN
yanli
2017-12-01
浏览量:1183
我使用GINKGO,USB-CAN适配器,在QT环境下进行2次开发
我是在一个线程死循环接收数据,主线程更新UI.
发了4000包的数据,只能更新100多包....
while
(
can_start
)
{
int
ReadDataNum
;
int
DataNum
=
VCI_GetReceiveNum
(
VCI_USBCAN2
,
0
,
0
);
uint32_t
SA
,
PF
,
flge
;
uint16_t
t
,
n
;
VCI_CAN_OBJ
*
pCAN_ReceiveData
=
(
VCI_CAN_OBJ
*)
malloc
(
DataNum
*
sizeof
(
VCI_CAN_OBJ
));
if
((
DataNum
>
0
)&&(
pCAN_ReceiveData
!=
NULL
))
{
ReadDataNum
=
VCI_Receive
(
VCI_USBCAN2
,
0
,
0
,
pCAN_ReceiveData
,
DataNum
);
for
(
int
i
=
0
;
i
<
ReadDataNum
;
i
++)
{
SA
=
pCAN_ReceiveData
[
i
].
ID
&
(
0xff
);
PF
=
(
pCAN_ReceiveData
[
i
].
ID
&
(
0x00ff0000
))>>
16
;
if
(
can_ps
==
SA
)
{
switch
(
PF
)
{
case
0x56
:
if
((
pCAN_ReceiveData
[
i
].
Data
[
0
])==
0x55
)
{
//收到头
flge
=
1
;
SD
.
readbuff
[
0
]=
pCAN_ReceiveData
[
i
].
Data
[
1
];
SD
.
readbuff
[
1
]=
pCAN_ReceiveData
[
i
].
Data
[
2
];
SD
.
readbuff
[
2
]=
pCAN_ReceiveData
[
i
].
Data
[
3
];
SD
.
readbuff
[
3
]=
pCAN_ReceiveData
[
i
].
Data
[
4
];
SD
.
readbuff
[
4
]=
pCAN_ReceiveData
[
i
].
Data
[
5
];
SD
.
readbuff
[
5
]=
pCAN_ReceiveData
[
i
].
Data
[
6
];
SD
.
readbuff
[
6
]=
pCAN_ReceiveData
[
i
].
Data
[
7
];
}
else
if
(
flge
==
1
)
{
//收完第1包内容,开始接收第二包
SD
.
readbuff
[
7
]=
pCAN_ReceiveData
[
i
].
Data
[
0
];
SD
.
readbuff
[
8
]=
pCAN_ReceiveData
显示全部
其他
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
2
chen0000009
程序感觉没啥问题,关键是你这个系统的性能不够,因此数据的转换速度可能达不到要求
你可以尝试调试一下,看看单步状态下能否做到不丢包
发布于
2017-12-03
举报
评论 2
0
0
发布
yanli
回复了 chen0000009:多谢
回复
电子老工程师
回复了 :原厂官网及其他平台都没有查到规格书
回复
donatello
程序正常,至于4000包只能收100包,会不会是缓冲区满了?没有开辟足够的缓冲区?
发布于
2017-12-20
举报
评论 1
0
0
发布
电子老工程师
回复了 :温度等级不一样,IT:工业:(–40°C ื TC ื +95°C, 没IT:商业:0°C ื TC ื +95°C
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
求助QT环境下USB-CAN
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: