ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:1.81MB ,
资源ID:8301798      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8301798.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(从零编写上位机.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

从零编写上位机.doc

1、好了既然安装好了,也知道labview是用来干什么,下面就给几个基础教程吧!这都是入门级的。 LabVIEW从入门到频率测量系统的开发.pdf 《LabVIEW 8.20程序设计从入门到精通》课件.rar 再介绍一个labview学习的论坛吧,我上面介绍的两个资料在这里都可以找到。 既然是上位机,当然离不开串口通信,不了解串口是不行的,下面再发一个资料 串口通信.pdf 前面的你大概只用花一天时间就可以解决。在具备计算机软件环境和基础知识后就可以动手编写程序了。 先把我做的串口接收例子发布出来,大家看看吧,很简单的。还有就是单片机里的串口

2、驱动和printp函数,这个在论坛里有下载,自己找吧,我不想发重复的东西。 串口接收示例.rar 串口收发示例.rar 到现在为止,假设你已经成功安装了软件,包括驱动和破解,而且看完了labview的基础知识和串口的基础知识。手头上也有我给你们的串口例子,相当简单。还有就是DG128上的printp。于是就可以在上位机上显示单片机发来的数据了。下一篇再详细讲述吧!         串口程序初步详解    在第一篇中,我已经给大家介绍了labview的用途,主要是用于虚拟仪器,数据采集和控制。labview的安装,破解以及其驱动的安装,其中大家可能会遇到点麻烦,如

3、果电脑技术可以的话,很轻松的就能解决,不过在网上也能搜到解决办法。还有就是介绍两个资料,这是基础,如果不知道的话,下面很难进行。     建议你们把那个PPT里面的小练习做一下,可以很快的熟悉labview。同时labview目录下的帮助文档也写得非常好,在\National Instruments\LabVIEW 8.5\manuals里面,尤其是LV_Getting_Started.pdf这个,按照它的步骤做个示波器,然后你就对G编程有个大概的了解的。     有了串口的基本知识,和G编程基本了解,下面就详细讲解一下我在上一篇文章中发给大家的串口示例。 这是串口程序的前面板,

4、最左边是5个输入控件,用于配置串口属性,上面还有一个开关串口的开关。中间是一个字符显示控件,如果你大概看了一下前面的labview资料,这个应该很容易就能拖出来。   这是程序框图,最左边的5个控件对应于前面板上的5个配置串口的输入控件。在这里你就把他当作5个“变量”(当然不是labview里通常意义的变量)好了,再往右来就是一个配置串口的控件。我们来看看labview对他的说明吧。顺便说一下,labview的帮助系统非常完善,绝大多数问题完全可以从他的帮助系统中得到解决。上面的这个信息就是从labview的“及时帮助”中得到的,热键“ctrl+h”就可以在labview里打开即时帮助的窗

5、口,里面实时显示鼠标指向的控件的功能和使用说明,非常方便。     看了上面这个说明,我想应该很容易看出,前面的5个控件是什么作用,分别输入到这个控件的5个端口中,用来设置串口的属性。具体设置的是什么属性?当然是前面板上对应控件里面设置的值了。每个端口名右边都有一个括号,里面显示的是这个端口的默认值,如果你不接,那么他就默认是那个值。比如“波特率”如果你不接,那么串口的默认波特率就是9600。对于有的属性可能不用修改,那么我们就直接在这里引入一个变量就可以了,比如是否启用“终止符”上面我就接了一个“假”的布尔常量,表示我们的串口不用自动截取终止符“\n”,这在我们后面是有用的,则串口每次都只接

6、收“\n“前面的字符串,而把后面的都忽略掉了。     再往又看,我们已经配置好串口了,那么把配置好的串口右边接一个设置串口缓冲区的控件,这个控件默认在电脑里设置一个4096大小的数据缓冲区,每次接收到4096个字节的数据时读一次。 然后就把这个控件的右端接到读取串口数据的控件,这个控件的右端输出的就是我们从串口读到的4096字节的字符串了。下面我们就可以对这4096个字符串任意处理了。可以说当你看到这里的时候,已经几乎完全知道怎么从串口读取数据了,剩下的内容已经不是串口通讯的范围。你你说前面还有那么多的框和按钮是干什么的,还有那个些黄色的线你都没说呢!这样就完了?的确,看到这个,

7、整个读取串口的过程你已经了然于心了,其他的那些只是为了增强程序的功能而已。    再往右看,我们把接收到的字符串和一个叫“接收数据”的东西用一个叫“连接字符串”的控件连在一起形成了一个新的字符串,然后把这个字符串连到“字符串显示控件”上面,于是,我们接收到的数据就显示在前面板中间的那个大大的框里面了。    运行这个程序,点左上角那个箭头,使用单片机不停发送“helloworrd”看看,现在的程序是不是很像一个简陋的串口调试助手?    至此你已经学会了把串口发送的数据显示在电脑了。你也许还在疑问,就这样就完了?我可以肯定的告诉你,串口就这么简单,向串口发送数据也一样,就是把那个“读串口

8、的图标换成写的,显示控件换成输入控件就可以了,我发的也有那个发送数据的例子,现自己看看吧,很简单。由于串口发送数据在我们的这个车的调试中用处不大,所以,我不打算讲解,如果需要的人多,我会考虑加上的。    下面的就是在这个串口通信的基础上增加功能了,这不是串口的范围。下一篇再说吧!嘿嘿!大家如果有把疑问和想法就发在下面吧,我会及时回答和补充内容的。如果觉得对你有帮助,就回个贴吧,给点鼓励,写帖子才有意义,我当然会更积极的写下去啦 程序结构   这一篇,我将给大家讲解一下labview中程序执行的顺序。最终目标是大家能够知道第二篇中那个程序里的框框是干什么的,为了简单,所以不会全讲,剩余

9、的到以后需要使用的时候再说。   在labview中,默认情况下,程序的执行顺序是沿着数据流动的方向运行的。我们把第二篇中的那个串口接收程序简化一下就成了上面的这个样子。 首先是配置串口,配置好的串口的数据流到缓冲区,我们设置好一个4096字节大小的缓冲区。于是得到了来自于串口的4096个字节的串口数据,然后我们再用“串口读取”从中取出这4096字节个数据,然后把这4096字节是数据输出到“接收数据”的那个框里,于是我们就可以看到从串口收到的字符了。   但这样的话,你会发现程序只能运行一次,然后就停止。我们如何才能让程序不停的循环这个步骤,当我们想让他停的时候他才停呢?   我们

10、可以在函数面板的空白处点击右键,如下图所示找到while结构 构然后就会出现一个可以拖动的方框,拖动他把你想不停执行的部分包含在这个框里面 然后就会变成这样 但是还没完,在这个框里面的右下角有一个红色的点,在他的左面有一个可以连接的“布尔”型连线,右击这个线,创建-》常量 于是他的上面就连接了一个“F”的常量,表明这个循环不会停止。也就是说这个while大方框里面的程序会不停的循环运行。   现在我们的串口程序每从串口接收到4096个字节的数据就把它显示在那个“接收数据”方框里,不断循环。但是我们现在还面临一个问题,那就是。每当接收到4096个字符串后,把他们显示在程

11、序中时,以前的数据就全部没有了,我们如何才能让以前的数据都保存在里面呢?   在while循环里还有一种结构,叫移位寄存器,右键点击while循环的那个框,选择“添加移位寄存器”。如下图     在while方框上出现了两个三角形的符号,这就是移位寄存器。移位寄存器的意思大概是把一次循环中计算的数据放在右边的那个三角形里,在下一次循环时,从左边的那个三角形里取出来进行运算,其实就跟C语言里的变量类似,通过这种方式我们可以把上一次循环中的数据用在下一次循环中(我讲的不是很准确,应该就是这么用吧。其实还有其他方法,也可以使用局部变量实现这个功能)。    再介绍一个函数--“连接字符串”

12、位置如下 下面我们就把它连接成下面这个样子 这样就可以把从串口接收到的数据完整的显示出来了,前面板如下 至于我给的那个程序里面的if结构的用法,就更简单了,使用“ctrl+H”看看帮助就知道了,其实这个功能要不要无所谓。为了使我们这个程序尽可能简单,暂时我就不介绍这个了。    通讯协议    说到通讯协议,这么“大”的一个词,这会不会很难啊?。其实不用怕,通俗的讲,通讯协议就是通讯双发的一种约定,可以简单,也可以复杂。复杂的有TCP/IP协议,简单的有串口通讯协议。我们现在要把图像从单片机发送给上位机,也需要通信协议。   如果没有通讯协议,对于收信方,谁知道你发的

13、是什么?就是一堆二进制码元(对于数字通信系统),他到底是干什么的?什么意思?根本无法知道。所以通信的双方要对发送的信息有所预定。   对于我们的赛车和上位机软件之间的通信,赛车通过串口发送图像数据,假设是一个100*10(字节)的图像,上位机软件接收到这1K的数据后把它绘制成相应的图像。可是从我的前几篇叫程中所说的来看,上位机软件接收的就是一些字符串,每次4096个字节,他怎么知道图像从哪里开始,从哪里结束呢?如果我们在单片机上就不停的发送图像,对于上位机来说,很显然根本无法知道从那里开始是我们所需要的一副图像。为此我们就需要做一定的约定,让上位机知道图像从什么地方开始。   为此,我们可

14、以在发送图像的时候发送一个标志字符串,比如“image”。当单片机发送图像时,先发送“image”,然后紧接着发送1K的图像,这样不断重复。那么上位机软件每次接收到到4096字节数据时从里面搜索字符串“image”,如果搜索到了,就把这后面的1k数据当作图像绘制在电脑上。这就是我们的通信协议,很简单吧!你会想这也叫通讯协议?它的确可以称之为通讯协议了,只不过很简陋,没有TCP/IP那样好听的名字。   现在具体说一下我们的通讯协议,那就是:这是一个单向协议,只负责单片机向上位机发送数据;单片机在每次发送数据前,发送一个标志字符串,同时保证在要发送的数据中不会存在与标志字符串相同的数据,提前约

15、定数据的长度(在我们前面的假设中,固定是1k,实际使用时可以更改);上位机接收时,通过搜索标志字符串,把标志字符串之后约定长度的数据取出来。   好了,下面开始正式行动吧!   在单片机里编写 main() {   while(1)   {    printp(“image”); 。。。发送1k的图像数据;    } } 在labview里 上一篇中是这样的 (这是上篇文章的labview程序串口接收示例2.rar) 现在把它改成这样(其中的两个字符串函数在字符串选板里): 然后把前面板的接收数据的宽度调整为100个字符的宽度,于是,每当你的单片机发送1K

16、的图像数据时,他就能正确的把它找到并显示在数据接收的方框内。 程序如下 这一篇又结束了,通讯协议还有很多内容,无论实现多么复杂的功能,都是在这个基础上增加的。至于能弄成什么样,就是仁者见仁,智者见智了。但通讯协议的关键在于告诉数据的起始位置和数据的大小(我们这里只有单片机和上位机通讯,所以不牵扯数据要发送到哪,从何而来的问题)。下一篇就告诉大家如何来把图像数据显示成画面,弄得更好看一些吧。不过到此为止,你应该已经可以把单片机传来的数据正确的找到并且显示在电脑上了,下面的仅仅是些锦上添花的东西,关键的技术到此为止已经差不多了。    图形绘制            今天应该是讲到这个

17、教程的最后部分了,有人看了肯定会觉得才写了这么点就没了。对这个教程,我在一开始写的时候就就是以简单为主,告诉大家如何入手labview。我学这个也没多久,像内存优化之类的高级功能还不熟悉,多进程也只是用了点皮毛而已。而且,这个车上位机软件编写还需要根据你的车上的程序和实际需要来修改,我这里只是讲述如何编写通用的上位机软件,也就是说你想编这个上位机软件时肯定会用到的技术,至于那些比较花哨的东西(比如改背景)可以不要,所以全部省掉。          罗嗦了这么多,下面进入正题吧。在上篇中,我们拥有了一个简陋的通讯协议,在单片机上我们发送字符串“image”然后发送一个固定长度的图片,从左到右从

18、上到下一次发送每个点的灰度值,而且这个灰度值的长度是固定的10*100。对于labview,每次收到的是4096个字节的字符串,从中搜索到“image”,然后把后面的10*100个字符串取出来,上位机就得到图像数据了。最后把这些数据用字“符串显示控件”显示出来,而且要把“符串显示控件”拖到合适大小才行。        现在呢,我们要把这个些图像数据显示成图像该怎么办呢?原因不说了,见步骤: (1)把这些字符串转化成“无符号字节数组”。 编程面板:编程->字符串->字符串/数组/路径转换-> “字符串至字节数组转换”  (2)上面得到的是一位数组,下面把它转化成10*100的二维数组。

19、 编程面板:编程->数组->“转换数组维数” (3)平化像素图 编程面板:编程->图形与声音->图形格式->“平化像素图”   (4)绘制平滑像素图 编程面板:编程->图形与声音->图片函数->“绘制平化像素图” 编程面板:编程->簇/类/与变体->“按名称捆绑” (5)右边接入图片控件,就可以显示了。 前面板:新式->图形->控件->“图片” 串口接收示例4.rar            只要你的单片机程序没问题,现在应该可以显示图片了。但是这个程序实在是太简陋了,面临的问题还有很多: (1)这个程序有漏数据的情况,我明明发了3副,他却只能收到1副。

20、 答:有多种可能,在编这个程序时首先要考虑一下串口速度和所发送数据的数据量。还有就是目前这个labview上位机程序是有问题的,那就是每次从串口缓冲区读取4096个字节的数据,却只从中搜索了副图像,其他的扔掉了。我们可以使用“移位寄存器”把搜索后剩余的字符串与下一次收到的进行连接,然后再进行搜索,这样就不会漏掉了。 (2)我现在是在调试程序,那个图片的尺寸随时会不停地修改,这样做的话,每次修改真麻烦,单片机修改后还需要修改上位机软件,有没有可以使上位机自动适应这个参数的呢? 答:可以修改通信协议,单片机每次发送图像修改为以下格式 printp("size");printp("%3d%3d",high,width);print("image");printp("图像数据"); 然后在上位机上先截取前面的参数,然后再处理后面的图像数据。 程序运行速度怎么这么慢?我如何使用上位机软件来控制小车?如何向上位机软件发送更多的信息,包括车速等?等等等等。。。。。。。。问题实在是太多了。一下子真的说不清楚如果有需要我会单独发帖各个击破!

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服