当前位置: 首页 > news >正文

单页网站优化做电影网站怎么盈利

单页网站优化,做电影网站怎么盈利,岳阳网站建设设计,做旅游项目用哪家网站好spcomm更加简单 转贴 Delphi中串口通信的实现 河南省计算中心 张海航 -------------------------------------------------------------------------------- Delphi是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具#xff0c;它在…spcomm更加简单     转贴     Delphi中串口通信的实现         河南省计算中心   张海航           --------------------------------------------------------------------------------               Delphi是一种具有功能强大、简便易用和代码执行速度快等优点的可视化快速应用开发工具它在构架企业信息系统方面发挥着越来越重要的作用许多程序员愿意选择   Delphi作为开发工具编制各种应用程序。但是美中不足之处是   Delphi没有自带的串口通信控件在它的帮助文档里也没有提及串口通信这就给编制通信程序的开发人员带来许多不便。               目前利用   Delphi实现串口通信的常用的方法有   3种一是利用控件如   MSCOMM控件和   SPCOMM控件二是使用   API函数三是调用其他串口通信程序。其中利用   API编写串口通信程序较为复杂需要掌握大量的通信知识。相比较而言利用   SPCOMM控件则相对较简单并且该控件具有丰富的与串口通信密切相关的属性及事件提供了对串口的各种操作而且还支持多线程。下面本文结合实例详细介绍   SPCOMM控件的使用。               SPCOMM的安装               1选择下拉菜单   Component中的   Install   Component选项弹出如图   1所示的窗口。                     图   1             在   Unit   file   name处填写   SPCOMM控件所在的路径其他各项可用默认值点击   OK按钮。               2安装后在   System控件面板中将出现一个红色控件   COM。现在就可以像   Delphi自带控件一样使用   COM控件了。               SPCOMM的属性、方法和事件               1.属性               ●CommName表示   COM1、   COM2等串口的名字               ●BaudRate:根据实际需要设定的波特率在串口打开后也可更改此值实际波特率随之更改               ●ParityCheck表示是否需要奇偶校验               ●ByteSize根据实际情况设定的字节长度               ●Parity奇偶校验位               ●StopBits停止位               ●SendDataEmpty这是一个布尔型属性为   true时表示发送缓存为空或者发送队列里没有信息为   false时表示发送缓存不为空或者发送队列里有信息。               2方法               ●Startcomm方法用于打开串口当打开失败时通常会报错。错误主要有   7种⑴串口已经打开⑵打开串口错误⑶文件句柄不是通信句柄⑷不能够安装通信缓存⑸不能产生事件⑹不能产生读进程⑺不能产生写进程               ●StopComm方法用于关闭串口没有返回值               ●WriteCommData(pDataToWrite:   PChar;dwSizeofDataToWrite:Word   )方法是个带有布尔型返回值的函数用于将一个字符串发送到写进程发送成功返回   true发送失败返回   false。执行此函数将立即得到返回值发送操作随后执行。该函数有两个参数其中   pDataToWrite是要发送的字符串   dwSizeofDataToWrite是发送字符串的长度。               3事件               ●OnReceiveData   :procedure   (Sender:   TObject;Buffer:   Pointer;BufferLength:   Word)   of   object               当有数据输入缓存时将触发该事件在这里可以对从串口收到的数据进行处理。   Buffer中是收到的数据   BufferLength是收到的数据长度。               ●OnReceiveError   :   procedure(Sender:   TObject;   EventMask   :   DWORD)               当接收数据出现错误时将触发该事件。               SPCOMM的使用               下面是一个利用   SPCOMM控件的串口通信的例子。               以实现   PC机与单片机   8051之间的通信为例首先要调通它们之间的握手信号。假定它们之间的通信协议是   PC到   8051一帧数据   6个字节   8051到   PC一帧数据也为   6个字节。当   PC发出   F0,01,FF,FF,01,F0后   8051能收到一帧   F0,01,FF,FF,01,F0表示数据通信握手成功两者之间就可以按照协议相互传输数据。               创建一个新的工程   COMM.DPR把窗体的   NAME属性定为   FCOMM把窗体的标题定义为测试通信按照图   2添加控件   (图   2中黑色矩形围住的控件即为   COMM1)。                           图   2             1.设定   COMM1属性               ●波特率   4800               ●奇偶校验位无               ●字节长度   8               ●停止位   1               ●串口   COM1。               Memo1中将显示发送和接收的数据。将新的窗体存储为   Comm.pas。               2.编写源代码               //变量说明               var               fcomm:   TFCOMM;               viewstring:string;               i:integer;               rbuf,sbuf:array[16]   of   byte;               //打开串口               procedure   TFCOMM.FormShow(Sender:   TObject);               begin               comm1.StartComm;               end;               //关闭串口               procedure   TFCOMM.FormClose(Sender:   TObject;   var   Action:   TCloseAction);               begin               comm1.StopComm;               end;               //自定义发送数据过程               procedure   senddata;               var               i:integer;               commflg:boolean;               begin               viewstring:‘’   ;               commflg:true;               for   i:1   to   6   do               begin               if   not   fcomm.comm1.writecommdata(sbuf[i],1)   then               begin               commflg:false;               break;               end;               //发送时字节间的延时               sleep(2);               viewstring:viewstring   inttohex(sbuf[i],2)‘’   ;   end;               viewstring:‘发送’   viewstring;               fcomm.memo1.lines.add(viewstring);               fcomm.memo1.lines.add(‘’   );               if   not   commflg   then   messagedlg(‘发送失败   !’   ,mterror,[mbyes],0);               end;               //发送按钮的点击事件               procedure   TFCOMM.Btn_sendClick(Sender:   TObject);               begin               sbuf[1]:byte(   f0);   //帧头               sbuf[2]:byte(   01);   //命令号               sbuf[3]:byte(   ff);               sbuf[4]:byte(   ff);               sbuf[5]:byte(   01);               sbuf[6]:byte(   f0);   //帧尾               senddata;//调用发送函数               end;               //接收过程               procedure   TFCOMM.Comm1ReceiveData(Sender:   TObject;   Buffer:   Pointer;BufferLength:   Word);               var               i:integer;               begin               viewstring:‘’   ;               move(buffer^,pchar(rbuf)^,bufferlength);               for   i:1   to   bufferlength   do               viewstring:viewstring   inttohex(rbuf[i],2)‘’   ;               viewstring:‘接收’   viewstring;               memo1.lines.add(viewstring);               memo1.lines.add(‘’   );               end;               如果   memo1上显示发送   F0   01   FF   FF   01   F0和接收到   F0   01   FF   FF   01   F0这表示串口已正确地发送出数据并正确地接收到数据则串口通信成功。 转载于:https://www.cnblogs.com/shylock/archive/2008/11/02/1325101.html
http://www.zqtcl.cn/news/118549/

相关文章:

  • 网站建设的技术有哪些内容东莞网站建设最优
  • 网站建设税费很多网站没有后台
  • 百度云主机上装网站flash怎么做网页
  • 外贸网站能用阿里云吗哔哩哔哩网页版打不开
  • 南宁月嫂网站建设财经直播的网站开发一个多少钱
  • 宁波网站的建设百度网盟推广 网站
  • 大连城乡建设局网站青岛网站建设外贸
  • 石家庄网站建设招聘珠海快速网站建设
  • 网站建设代理ai制作网页
  • 微网站平台怎样做网站wordpress侧栏跟随
  • 手机网站建设好吗湖南省专业建设公司网站的机构
  • 网站代码 字体好用的cms网站
  • 美食网站首页设计用手机怎么看自己做的网站
  • 平台类网站开发怎样做永久网站二维码
  • 网站开发客户挖掘php网站开发心得3500字
  • 检察院做网站的目的青岛网站推广优化
  • dede替换网站模板定制网站建设的流程
  • 天津专业网站制作网站开发模板
  • 做二手车网站需要什么怎样建立门户网站
  • 宁波做网站首荐荣盛网络网站建设太仓
  • 购物网站公司要花费多少钱wordpress 菜单 字体加粗
  • 网站模板如何编辑软件crm免费客户管理系统
  • 微信制作网站设计重庆关键词优化软件
  • 网站的设计与应用论文平台推广计划书模板范文
  • 网站备案用户名忘了怎么办网站做301排名会掉
  • 厦门制作网站企业网站子域名怎么做
  • 青岛微网站开发品牌建设青之见
  • 淄博哪有培训做网站的湖南营销型网站建设企业
  • 动物网站建设深圳最好的营销网站建设公司
  • 各种网站制作陕西建设厅证件查询网站