串口摄像头与上位机PC的串口通信和图像采集问题
本帖最后由 basic_eric 于 2010-08-28 15:23:02 编辑 小弟手头上有个串口JEPG摄像头,用这个摄像头接上5V电源,然后再和电脑相连,现在老师要求把这个串口摄像头拍的照片在上位机上显示出来。摄像头的通信协议这块用VB已经做好了,但现在遇到几个问题:希望高手能帮我解答一下。
第一个问题:我通过主机设置拍照的JEPG图像大小为80*64,设置的数据包为512字节(最大设置只有512字节)。这样设置的话,我是不是要连续读10次数据包,才能把一个图像的数据接收完?但我在具体调试程序的时候,发现在读第一包和第二包数据的时候,收到的字节是512个,但读到第三包的时候,就只有几十个了,这是什么原因?然后继续读第四包数据,摄像头也不发送数据了。
第二个问题:如果第一个问题解决的话,可以连续读到10个数据包的数据,但我怎么样把这十包数据放到一个数组里面?具体是怎样编程的啊?
第三个问题:如果前面两个问题都解决了,那么我怎么把摄像头发送过来的数据(十六进制格式的)转换成图像在上位机上显示出来?找了很多书,好像都没涉及到十六进制如何还原图像的内容。
本人很菜,以前是学电子专业的,初学VB还没一个月,只是懂一些简单的代码和控件操作,第一次发帖,希望在这里能得到高手的点播。
在线等高手的帮助啊!有需要看摄像头通讯协议和程序的留下你的QQ或邮箱,我发给你们!
[解决办法]
第一个问题,是你的通信程序有问题,好好检查下
第二个问题,看看动态数组
第三个问题,是十六进制转换成二进制,这个程序只要懂原理不难
[解决办法]
LZ提供的通信协议规定:
如果摄像头超过10秒钟没有收到串口数据,就会自动进入休眠模式,须重新同步以建立连接,可以通过定时发送同步命令来避免摄像头进入休眠模式。
注意:如果中途出现摄像头返回数据超时≥3S,请发送复位命令,延时20ms后,主机再发送命令。
读LZ的代码似乎没有严格按协议写.