最近有个项目需要我用qt写个上位机,完成pcan通信。
当我从官网下载好pcan的api后,链接到我的qt工程
利用api的函数CAN_Initialize初始化pcan时,一直显示初始化失败,说是通道初始化失败。
当时一直以为是自己的pcan驱动问题,又在官网中寻找其他版本的驱动,逐个尝试后依然有这种情况。后来知道qt最新版本本身是有pcan的库的,这个可以自己在欢迎界面搜索CANBUSexample,在编写好例程的代码后,发现还是初始化失败,找不到句柄。在检查我的设备后发现。我的codesys gateway一直在启动状态,我才知道是我的codesys一直在占用pcan的通道。关闭了通道之后可以正常运行。
但是最后我有个疑问,为什么我的codesys占用pcan通道后,我的pcan-view为什么可以正常使用。而我用pca api做的上位机不可以使用。于是我在研究,怎么才能做出pcan-view这种效果:即使通道被占用,也可以监控can消息。目前还没有解决。