找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2126|回复: 12

VC++之上位机编程

 火.. [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:29
  • 打卡月天数:1
  • 打卡总奖励:7791
  • 最近打卡:2025-12-13 17:25:16

2540

主题

1355

回帖

2万

积分

管理员

积分
21304
发表于 2021-6-26 11:05:26 | 显示全部楼层 |阅读模式


先简单介绍一下何为上下位机,在实际应用中,有时需要单片机采集数据并通过串口将数据传递至个人电脑,再由个人电脑收集数据,并对数据进行,分析处理,再通过串口将要操作的指令发送出去,单片机接收到后执行相对应的操作。
本节介绍全双工通信,类似于所讲的套接字编程,但由于单片机上没有windows系统,因此需要通过串口通信。上位机和下位机分别类似于网络编程的服务端和客户端,两者没有固定区分,并在一定情况下可以相互转化,也就是说单片机同样可以通过串口通信给个人电脑发送指令让其执行相应操作。
单片机作为下位机,对应的寄存器和编程内容不在此介绍,着重介绍个人电脑的上位机编程。
主要还是借助mfc的active控件——Mscomm控件


,我们新建一个对话框,


然后右击添加Active控件,
选择


,点击完成,随后打开类向导


为该控件定义一个CMscomm1类型的控制变量,随后都通过这个变量对控件进行操控。
接着介绍下该控件类主要的成员函数:
put_commPort(ComPort);//设置端口号,由于笔者采用电脑的com3口通信,所以这里设为3;
put_SThreshold(Sthreshold);若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件,这里设为1;
put_RThreshold(Rthreshold);//当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。这里设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。
put_InputMode(1) //0(缺省)通过 Input 属性以文本方式取回数据,而这里设为1表示以二进制方式取回数据;
put_Settings("BBBB,P,D,S ")//BBBB 为波特率,P为奇偶校验,D为数据位数,S为停止位数。value 的缺省值是:"9600,N,8,1 ";
在设置完基本的属性值之后还必须得打开端口put_PortOpen(BOOL)函数,若BOOL为TRUE,则打开端口,若为FALSE,则关闭端口;
在打开端口后我们可以通过以下语句提醒端口状态


若成功打开则出现以下对话框;


在初次进行上位机编程的时候不可避免地会出现很多苦难,一开始,笔者对属性如下设置


结果发现跳出对话框


说明端口已被占用,后来用串口调试助手调至com3端口才成功,于是笔者又对属性索性全改成3结果发现,无论如何端口都不曾打开


回头再看通过断点一步步调试才发现只有端口值才需为3。emmmm,说明心急是要不得的。果然当属性设置正确后,程序理想化运行,配合下位机实验,发出的值成功返回,程序调通。


程序调通只是一小步,确意味着可以通过这个模块,写对应的程序,通过电脑控制单片机的每一个模块,也可以编写属于自己的串口调试小助手。光明的未来似乎触手可摸……

工控课堂 www.gkket.com

0

主题

74

回帖

195

积分

新手上路

积分
195
发表于 2021-6-27 20:15:28 | 显示全部楼层
楼主您的技术水准,我最服你,其他都是浮云
工控课堂 www.gkket.com

0

主题

106

回帖

385

积分

注册会员

积分
385
发表于 2021-6-28 01:07:28 | 显示全部楼层
无回帖,不论坛,这才是人道。
工控课堂 www.gkket.com

0

主题

111

回帖

168

积分

新手上路

积分
168
发表于 2025-11-15 08:28:23 | 显示全部楼层
说得对!狠狠赞同,没毛病~
工控课堂 www.gkket.com

0

主题

59

回帖

75

积分

新手上路

积分
75
发表于 2025-11-15 08:34:02 | 显示全部楼层
画面感太强了,仿佛身临其境!
工控课堂 www.gkket.com

0

主题

106

回帖

297

积分

注册会员

积分
297
发表于 2025-11-15 08:36:44 | 显示全部楼层
笑不活了,评论区比正文还精彩
已转发给朋友,一起快乐一下
工控课堂 www.gkket.com

0

主题

123

回帖

345

积分

注册会员

积分
345
发表于 2025-11-15 08:38:30 | 显示全部楼层
原来还有这种操作,长见识了!
工控课堂 www.gkket.com

0

主题

111

回帖

441

积分

注册会员

积分
441
发表于 2025-11-15 08:41:47 | 显示全部楼层
这波反向操作,我属实没想到!
工控课堂 www.gkket.com

0

主题

194

回帖

850

积分

中级会员

积分
850
发表于 2025-11-15 08:45:37 | 显示全部楼层
我先占个楼,等下再慢慢看~
工控课堂 www.gkket.com

0

主题

83

回帖

122

积分

新手上路

积分
122
发表于 2025-11-15 08:48:48 | 显示全部楼层
来凑个热闹,增加点人气~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 08:52 , Processed in 0.085579 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表