没有合适的资源?快使用搜索试试~ 我知道了~
首页VC实现串口通信200个项目源码
资源详情
资源评论
资源推荐

VC 实现串口通信例程
界面下的 串口通 讯程序在 下是不建 议对端口进行 操作的,在
中所有的设备都被看成是文件,串行口也不例外也是作为文件来进行处理的。这是
我的一份关于串口编程的读书笔记,对于使用 进行编程的同行应该有一定的帮助。
打开串口:
在 下串行口作为文件处理,使用文件操作对串行口进行处理。使用
打开串口,将返回串口的句柄。
!"!#$%&''$%()*
+#,--,,&''--,,.%
+#")/&'',)%
"0#!12!!#30!" $"-4564,& '' $ ,-45
64,
+#,64&'')-
+#7,64,&''*64,
)!%$'')*)64,-$5
8
$%9指明串口制备,例:+/,+/
,--,,9指明串口存取方式,例::#2#;:#2#!
")/9指明串口共享方式
$"-4564,9指明串口的安全属性结构&0 为缺省安全属性
,649必须为 + 2<"!
764,9对串口唯一有意义的是 2:2+#
)!%$9必须为 0
关闭串口:
,)%%=8
设置缓冲区长度:
3++"4$%%
)&'')(-%%4-,=-
+#>44&'',?($464@
+#+4>44'',?(4$464@
8
A+// #+ 结构:
可使用 :%% $,取得 +// #+ 结构,+// #+ 结构中记载
了系统支持的各项设置。

5$(,4-2+// #+ B''-%%$
+# -C7)8''$-C,?&65,
+# -C,8''$-C=,
+#"=-/,C8'',=-,%$%
+##,=8'',=
+#/D!D>448''%D!D64(,?&65,
+#/D#D>448''%D#D64(,?&65,
+#/D348''%D64&6$,
+# ="46!5$8'',$-*-$=5$
+# =$6,8''-$6,,4$$
+#"6 %,8''-)76$%,
+#"6348''664,
+#"68''665,?,
+#"6"$ 58'',$6,'$5
+#4!D>448''!D64@,?&65,
+#4#D>448''#D64@,?&65,
+# ="$-8''$=.,$-*-
+# ="$-8''$=.,$-*-
#- =)EF8''$=.,$-*-
G+// #+ 8
/D34:
302HII6$,
302HH6$,
302A2A6$,
302HH6$,
302HHHH6$,
302JHHJHH6$,
302HHHH6$,
302KHHKHH6$,
302AHHAHH6$,
302AKHHAKHH6$,
302IHHIHH6$,
302JHHJHH6$,
302AAHHAAHH6$,
302HHHH6$,
302KAHHKAHH6$,
302JLJL6$,
302IJHHIJHH6$,
302HHHH6$,
302KLKL6$,
3020"# 7%%664,=6
="46!5$:
"!2<传真设备
"!2!! 协议

"!2/+/调制解调器设备
"!2!+#L23#:未指定的网桥
"!2 # +#!并口
"!2#"#". 口
"!2#"A#".A 口
"!2#"A#".A 口
"!2#"AA#".AA 口
"!2"#扫描仪设备
"!2! 2!!! ' ! 协议
"!20" 未指定
"!2<< 标准
=$6,
2J3!/+支持特殊的 J 位模式
2!#"#支持 !#数据终端就绪'"#数据设备就绪
2!!/+0!"支持区间超时
2 #!12L支持奇偶校验
2#"支持 #"接收线信号检测
2#!"!"支持 #!"请求发送'!"清除发送
2"!<#支持可设置的 <+'<+
2" #"支持特殊字符
2!+!!/+0!"支持总占用时间超时
2<+<+支持 <+'<+ 流控制
标准 #". 和 + 支持除 2J3!/+ 和 2" # 外的
所有功能
"6 %,
" 230可配置波特率
" 2!3!"可配置数据位个数
" 2"L:可配置握手流控制
" 2 #!1可配置奇偶校验模式
" 2 #!12L可配置奇偶校验允许'禁止
" 2#"可配置 #"接收信号检测
" 2"!+ 3!"可配置停止位个数
标准 #". 和 + 支持以上所有功能
"6
!3!"2 个数据位
!3!"2JJ 个数据位
!3!"2II 个数据位
!3!"2KK 个数据位
!3!"2JJ 个数据位
!3!"2J<通过串行硬件线路的特殊宽度路径
+" 支持 J 的所有设置
3 结构:

5$(,4-23B''-6
+#37)8'',?(3
+#34#8''-464
指定当前的波特率
+#(3598''65%&+-)-C
指定是否允许二进制模式,
+" 中必须为 !#0
+#( 598''6$5-)-C7
指定奇偶校验是否允许
+#(+4D,98''!"4$4M-
指定 !" 是否用于检测发送控制。
当为 !#0 是 !" 为 +,发送将被挂起。
+#(+4D,98''"#4$4M-
指定 !" 是否用于检测发送控制。
当为 !#0 是 !" 为 +,发送将被挂起。
+#(98''!#M-5$
!#2+!#+2"3 值 将 !# 置 为 +&!#2+!#+23 值 将
!# 置 为 +& !#2+!#+2"L 允 许 !#N 握 手 N&+#
(,",=598''"#,,=5当该值为 !#0 时 "# 为 + 时接收的字节被忽
略
+#(!<4+<@98''<+-4,!D
指定当接收缓冲区已满&并且驱动程序已经发
送出 <@) 字符时发送是否停止。
!#0 时,在接收缓冲区接收到缓冲区已满的字节 <@% 且驱动程序已经发送出
<@) 字符中止接收字节之后,发送继续进行。
" 时,在接收缓冲区接收到代表缓冲区已空的字节 <) 且驱动程序已经发
送出恢复发送的 <) 之后,发送继续进行。
+#(+4<98''<+'<+4M-
!#0 时,接收到 <@) 之后便停止发送
接收到 <) 之后将重新开始
+#(<98''<+'<+M-
!#0 时,接收缓冲区接收到代表缓冲区满的 <@% 之后,<@) 发送出去
接收缓冲区接收到代表缓冲区空的 <% 之后,<) 发送出去
+#()98''6$-%
该值为 !#0 且 ( 5 为 !#0 时,用 )成员指定的字符代替奇偶校验错
误的接收字符
+#(498''64,$$7
!#0 时,接收时去掉空(H 值)字节
+#(#,98''#!"M-
#!"2+!#+2"3 时&#!" 置为 +
#!"2+!#+23 时&#!" 置为 +
#!"2+!#+2"L 时&
当接收缓冲区小于半满时 #!" 为 +

当接收缓冲区超过四分之三满时 #!" 为 +
#!"2+!#+2!+:: 时&
当接收缓冲区仍有剩余字节时 #!" 为 +&否则缺省为 +
+#(6+98''6,',
!#0 时&有错误发生时中止读和写操作
+#(4%%59I8'',=
未使用
+##,=8''-454,
未使用&必须为 H
+#<%8'',%<+),)
指定在 <+ 字符发送这前接收缓冲区中可允许的最小字节数
+#<@%8'',%<+),)
指定在 <+ 字符发送这前接收缓冲区中可允许的最小字节数
31!35"?8''4%6(6,'65&A.K
指定端口当前使用的数据位
31! 58''H.AO&&=&%C&,$-
指定端口当前使用的奇偶校验方法&可能为9
#!1&/#L #!1&+ #!1&+ #!1
31!"$3,8''H&&O&&
指定端口当前使用的停止位数&可能为9
+"!+ 3!&+"!+ 3!"&!+"!+ 3!"
-)<)8''!D#D<+-)-
指定用于发送和接收字符 <+ 的值
-)<@)8''!D#D<+-)-
指定用于发送和接收字符 <+ 值
-))8''$-%-)-
本字符用来代替接收到的奇偶校验发生错误时的值
-)()8''($4-)-
当没有使用二进制模式时&本字符可用来指示数据的结束
-)=)8''-==-)-
当接收到此字符时&会产生一个事件
+##,=8'',=84,未使用
G38
J改变端口设置
使用如下的两个方法
3++:%%")%%&P-68
3++"%%")%%&P-68
I改变普通设置
34%%3,?"7,&P38
,?"7, 的格式964$5,$
剩余39页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论4