|
最近在学习用上位机labview控制arduino(使用Labview Visa库 而不是 Labview Arduino库,因为Visa更为自由灵活).
参考的是"糊涂塔克学习笔记02 Arduino+Labview (下)"中的例子.
直达链接: http://www.geek-workshop.com/thread-1276-1-1.html
由于手头没有"DS18b20温度传感器芯片",我就用使用一个光敏电阻来代替了,反正都是首先通过Uno(OCROBOT MANGO II) 读取电路/器件的数值,然后通过Labview来显示. 我的MANGO II是通过串口COM3连接到电脑上的.
写好程序后:
过程1, 单独使用Arduino-->tools-->serial Monitor/Plotter 没有问题, MANGO可以正常读数.
过程2, 再使用Labview来读取光敏电阻数据,也没有问题(时序问题还有缓存问题暂且不提~).
问题:过程2中, 当我"Labview中按下Stop键"-->"回到Arduino编译器-->尝试修改程序中的delay(xxx)并Upload"时, Arduino编译器反馈"Error opening serial port 'COM3'. (Port busy)".
也就是说COM3串口已经被Labview占用,所以Arduino编译器无法通过COM3对MANGO注入新的程序.
我的解决办法是: 关闭Labview, 再修改Arduino程序,再打开Labview查看调试结果. 但是这个解决办法实在太冗余(反复开关Labview), 想问问朋友们,有没有比较好的解决办法?
我觉得这个问题很重要,因为通过Labview控制Arduino的时候,经常会出现比较底层的"时序错误/buffer溢出"的问题,需要随时调整Labview界面内的循环等待时间和Arduino的数据读取时间. 然而一旦运行Labview,它作为上位机就会剥夺Arduino编辑器的权限,造成无法修改/upload新程序到板子上.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|