📄 在delphi中用spcomm实现串口编程.htm
字号:
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>for i:=1 to 6 do </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>begin </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>if not fcomm.comm1.writecommdata(@sbuf[i],1)
then </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>begin </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>commflg:=false; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>break; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>end; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送时字节间的延时</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sleep(2); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>viewstring:=viewstring</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">+</SPAN><SPAN
lang=EN-US> inttohex(sbuf[i],2)</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">+‘’</SPAN><SPAN
lang=EN-US> ; end; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>viewstring:=</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">‘发送’+</SPAN><SPAN
lang=EN-US> viewstring; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>fcomm.memo1.lines.add(viewstring);
</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>fcomm.memo1.lines.add(‘’ ); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>if not commflg then messagedlg(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">‘发送失败</SPAN><SPAN
lang=EN-US> !</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">’</SPAN><SPAN
lang=EN-US> ,mterror,[mbyes],0); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>end; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发送按钮的点击事件</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>procedure TFCOMM.Btn_sendClick(Sender:
TObject); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>begin </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[1]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> f0); //</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">帧头</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[2]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> 01); //</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">命令号</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[3]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> ff); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[4]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> ff); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[5]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> 01); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>sbuf[6]:=byte(</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">$</SPAN><SPAN
lang=EN-US> f0); //</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">帧尾</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>senddata;//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">调用发送函数</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>end; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">接收过程</SPAN>
</P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>procedure TFCOMM.Comm1ReceiveData(Sender:
TObject; Buffer: Pointer;BufferLength: Word); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>var </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>i:integer; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>begin </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>viewstring:=‘’ ; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>move(buffer^,pchar(@rbuf^),bufferlength);
</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>for i:=1 to bufferlength do </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>viewstring:=viewstring</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">+</SPAN><SPAN
lang=EN-US> inttohex(rbuf[i],2)</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">+‘’</SPAN><SPAN
lang=EN-US> ; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>viewstring:=</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">‘接收’+</SPAN><SPAN
lang=EN-US> viewstring; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>memo1.lines.add(viewstring); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>memo1.lines.add(‘’ ); </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN lang=EN-US>end; </SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN
style="mso-spacerun: yes"></SPAN></SPAN> </P>
<P class=MsoNormal><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果</SPAN><SPAN
lang=EN-US> memo1</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上显示发送</SPAN><SPAN
lang=EN-US> F0 01 FF FF 01 F0</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和接收到</SPAN><SPAN
lang=EN-US> F0 01 FF FF 01 F0</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,这表示串口已正确地发送出数据并正确地接收到数据,则串口通信成功。</SPAN><SPAN
lang=EN-US> </SPAN></P>
<P class=MsoNormal><SPAN
lang=EN-US><![if !supportEmptyParas]><![endif]> <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN
lang=EN-US><![if !supportEmptyParas]><![endif]> <o:p></o:p></SPAN></P></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -