怀孕不能吃什么东西| 1.5是什么星座| 你把我当什么| 难缠是什么意思| 口腔挂什么科| et是什么| 科目三考什么内容| 人为什么会死亡| 什么样的肚子疼是癌| 猪肝炒什么好吃| ceo是什么意思| 什么牌子的助听器最好| 招财猫鱼吃什么| 孕妇上火了吃什么降火最快| 孕妇梦见自己出轨是什么意思| 六月中旬是什么时候| 鳡鱼是什么鱼| 肋骨外翻挂什么科| 舌根发硬是什么原因| 杜鹃花什么时候开花| 康熙叫什么名字| 空谷幽兰下一句是什么| 什么的落日| 便血挂什么科| 幻觉妄想状态是什么病| 受用是什么意思| comma是什么意思| 老是觉得口渴是什么原因引起的| 肾盂是什么意思| 经期可以喝什么茶| 让我爱你然后把我抛弃是什么歌| 细菌性毛囊炎用什么药| col是什么的缩写| 艾灸灸出水泡是什么情况| 微循环是什么意思| 非典型腺细胞是什么意思| 抽血后头晕是什么原因| 三叉戟是什么意思| suki什么意思| 为什么手比脸白那么多| 哎一古是什么意思| 竹荪是什么| 口干舌燥吃什么药最好| 豆浆喝多了有什么坏处| 猫来家门口有什么预兆| 朕是什么时候开始用的| 向左向右向前看是什么歌| 梦见手机摔碎了是什么意思| trab抗体偏高代表什么| 宣是什么意思| 反胃恶心想吐吃什么药| 黄精有什么作用和功效| 胃疼胃胀用什么药效果最好| 汉语拼音是什么时候发明的| 档案自由可投什么意思| 茄子吃多了有什么坏处| 花枝鼠吃什么| 承情是什么意思| usp是什么意思| 胃疼做什么检查| 鼻窦炎用什么药好| 集中的近义词是什么| 折射率是什么意思| 高危型hpv66阳性是什么意思| 曲水流觞是什么意思| 天上人间是什么意思| 黄体酮吃了有什么副作用| 什么东西放进去是硬的拿出来是软的| 维生素k是什么| 什么人容易得心梗| 50肩是什么意思| 喝枸杞水有什么好处| ENBD手术全称是什么| 开塞露是什么成分| 胆管结石用什么药能把它除掉| 什么食物含铁| 牡丹花有什么颜色| 安之若素什么意思| 93年属鸡的是什么命| 甲状腺欠均匀什么意思| 肌酐高是什么问题| 04年属猴的是什么命| 马黛茶什么味道| 江郎才尽是什么意思| 血压高什么症状| 蜻蜓是什么生肖| 1984年属什么生肖| 人工流产和无痛人流有什么区别| 一九八六年属什么生肖| 口腔溃疡什么时候能好| 劳苦功高是什么意思| 悉心栽培什么意思| 左室舒张功能减低吃什么药| 药剂师是干什么的| 女性膀胱炎是什么症状| 上炕是什么意思| 为什么会长黄褐斑| 毁三观是什么意思啊| 眼镜轴向是什么意思| 网店卖什么好| 后背疼痛挂什么科| 吃什么水果对心脏好| hbr是什么意思| 八嘎呀路是什么意思| 城隍是什么意思| 女人下面 什么味道| 前列腺炎是什么症状| 有酒窝的女人代表什么| 麻婆豆腐用什么豆腐| 食管息肉的症状是什么| 三基色是什么颜色| 小孩子发烧抽搐是什么原因| 长残了是什么意思| 燕京大学现在叫什么| 珊瑚红是什么颜色| 卡姿兰是什么档次| 双子男和什么星座最配| 白细胞高吃什么降得快| 为什么会梦魇| cpa是什么| 穷代表什么生肖| 宫刑是什么意思| c13阴性是什么意思| la是什么牌子| 升白针叫什么名字| 为什么睡不着觉会胡思乱想| 防微杜渐的意思是什么| 血氧饱和度什么意思| 嬛嬛一袅楚宫腰什么意思| 4月17是什么星座| 起司是什么| 00属什么| 8月15日什么星座| 小孩用脚尖走路是什么原因| 蟑螂喜欢什么样的环境| 书到用时方恨少下一句是什么| 女生为什么有喉结| 脸色暗沉发黑什么原因| 气球是什么生肖| 二级产前超声检查是什么| 1990属马的是什么命| 产妇吃什么下奶快又多又营养| 新生儿脸上有小红点带白头是什么| 嘴唇紫黑是什么原因| 漫不经心是什么意思| 猫什么时候发情| 揉肚子有什么好处| 雷贝拉唑钠肠溶片什么时候吃| 鳞状上皮增生是什么意思| 老年痴呆症挂什么科| 男人梦见老鼠什么征兆| 腰椎生理曲度变直是什么意思| 前列腺按摩什么感觉| 9.1号是什么星座| 气虚的人适合什么运动| 2021年属什么| 舌苔厚白用什么泡水喝| 士加一笔是什么字| 肺气肿吃什么食物| 归元寺求什么最灵验| 苹果a1660是什么型号| 儒雅什么意思| 副乳有什么危害吗| 一马平川是什么生肖| 孕妇便秘吃什么水果| 姜枣茶什么时间喝最好| 梦见自己吃肉是什么预兆| 华丽的近义词是什么| 什么牌子的氨基酸洗面奶好| 阴道炎是什么症状| 今日立冬吃什么| 梦见车丢了是什么征兆| 嘢是什么意思| 跌打损伤用什么药好得快| 微量元素检查挂什么科| 宜家宜室什么意思| 小腿疼痛什么原因引起的| 病原体是什么意思| 原图是什么意思| 梦见老公怀孕什么预兆| 做什么能快速赚钱| 芥菜长什么样子图片| 干红是什么意思| et是什么意思| 月牙消失了是什么原因| 天才是什么意思| 菜板买什么材质的好| 40岁属什么生肖| 什么的李子| 昱怎么读音是什么| 每年什么时候征兵| 梦见老虎是什么意思| 什么人不能献血| 不走心是什么意思| 女生为什么有喉结| 蒟蒻是什么| 红细胞计数偏低是什么意思| 口腔溃疡买什么药| 被臭虫咬了擦什么药| 指甲油什么牌子好| 病案首页是什么| 流星雨是什么意思| 避孕套和安全套有什么区别| 十点是什么时辰| 甲亢吃什么好的更快| 脂溢性脱发用什么药| 急性扁桃体化脓是什么原因引起的| 牙龈发炎吃什么药| 中性粒细胞百分比偏低是什么意思| 经常吃豆腐有什么好处和坏处| 双离合是什么意思| 梦见亲人死了是什么意思| 纤维灶是什么意思| 吃刺猬有什么好处| 什么然而止| 经常咳嗽是什么病| 腰肌劳损看什么科| 柔肝是什么意思| 痔疮什么样| cps是什么单位| 两只小船儿孤孤零零是什么歌| 什么是公元前和公元后| 平均红细胞体积偏低是什么意思| 黄体期什么意思| 有脚气是什么原因引起的| 什么食物利尿| 中耳炎吃什么药效果比较好| 梦见亲人是什么意思| 85年是什么命| 蓝牙耳机什么牌子好| 疽是什么意思| 什么原因导致脾虚| 大疱性皮肤病是什么病| 蚊子咬了涂什么| 干呕是什么病的前兆| 低钾血症有什么症状| 婊子代表什么生肖| gh是什么意思| 骨折后吃什么恢复快| 肌炎有什么症状| 兔肉和什么相克| 七月份有什么节日吗| 液蜡是什么| jojo是什么| 有眼屎用什么眼药水| 喝什么牌子的水最健康| 射手女和什么星座最配| 嘴里甜是什么原因| 室缺是什么意思| 二月初四是什么星座| 桑榆是什么意思| 哈尔滨机场叫什么名字| 头顶是什么穴位| 印记是什么意思| npc是什么意思| 2028年属什么| 出院小结是什么| 双侧肾盂无分离是什么意思| 两色富足间是什么生肖| 雪碧喝多了有什么害处| 什么东西解辣| 什么样的阳光填形容词| 玹字五行属什么| 四大才子中状元是什么生肖| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? FPGA ? VC上位机MFC利用串口控件发送接收数据

共10条 1/1 1 跳转至

VC上位机MFC利用串口控件发送接收数据

专家
2025-08-03 18:32:43     打赏
百度 他同林彪、江青集团进行了各种形式的斗争,在挫败林彪、江青集团种种分裂和夺权阴谋活动中,起到了控制和稳定局势的重要作用。

 经过这两天的调试,基本上搞定了dsp和机器人上位机界面,先记录下我的上位机。

       实验室是做机器人控制的,经常会用到上位机,我只搞过简单的上位机的编写,是基于mfc的对话框的,很多原理性的东西现在也是懵懵懂懂的,但好歹是功能也实现了。回顾自己的上位机主要涉及过的东西为一些基本控件的使用(编辑框,按钮等等),1.串口发送和接收数据,2.手柄扫描(因为实验室用手柄来遥控机器人,扫描到手柄上不同的按钮发送不同的指令和数据,这样来实现对机器人的遥控),3.usb摄像的显示(不过这东西只是一个象征性的视频回显,似乎还没真正有什么作用)。

       接下来这个实验先实现串口发送和接收数据,后面实验加上手柄,至于usb摄像头的显示不是很想加上去。到时候在看看吧。开始vc6.0实现串口发送和接收数据吧!!(已实现一个串口收发为例)

指导书参考:,自己按照自己的要求修改就行了。

——回复可见内容——


1新建工程


选择对话框


一路next和finish即可。


删除确定,取消,TODO。


2.在项目中插入MSComm控件 

    选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls


    选择MicrosoftCommunications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。


    在ClassView视窗中就可以看到CMSComm类了,你在控件中可以看到多了一个跟电话一样的东西。拖入到对话框中,程序运行时,他不会出现的。


3.利用ClassWizard定义CMSComm类控制对象

    打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,(自己取好,前后一致)这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES()#include "mscomm.h" //}}AFX_INCLUDES


4.打开串口和设置串口参数

    拖入一个按钮,命名为打开串口,双击,编辑函数

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. if(m_ctrlComm.GetPortOpen())  
  2.         m_ctrlComm.SetPortOpen(FALSE);  
  3.       
  4.     m_ctrlComm.SetCommPort(1); //选择com1  
  5.     if( !m_ctrlComm.GetPortOpen())  
  6.     {  
  7.         m_ctrlComm.SetPortOpen(TRUE);//打开串口  
  8.         AfxMessageBox(" open serial port successfully");  
  9.     }  
  10.     else  
  11.         AfxMessageBox("cannot open serial port");  
  12.       
  13.     m_ctrlComm.SetSettings("9600,n,8,1"); //波特率9600,无校验,8个数据位,1个停止位  
  14.     m_ctrlComm.SetInputMode(1); //1:表示以二进制方式检取数据  
  15.     m_ctrlComm.SetRThreshold(1);   
  16.     //参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件  
  17.     m_ctrlComm.SetInputLen(0); //设置当前接收区数据长度为0  
  18.     m_ctrlComm.GetInput();//先预读缓冲区以清除残留数据  


5添加串口事件消息处理函数OnComm()

    打开ClassWizard->Message Maps,选择类CSCommTestDlg,选择IDC_MSCOMM1,双击消息OnComm,将弹出的对话框中将函数名改为OnComm。

    这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数中加入如下代码:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. VARIANT variant_inp;  
  2.    COleSafeArray safearray_inp;  
  3.    LONG len,k;  
  4.    BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.  
  5.    CString strtemp;  
  6.    if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符  
  7.    {             ////////以下你可以根据自己的通信协议加入处理代码  
  8.        variant_inp=m_ctrlComm.GetInput(); //读缓冲区  
  9.        safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量  
  10.        len=safearray_inp.GetOneDimSize(); //得到有效数据长度  
  11.        for(k=0;k<len;k++)  
  12.            safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组  
  13.        for(k=0;k<len;k++) //将数组转换为Cstring型变量  
  14.        {  
  15.            BYTE bt=*(char*)(rxdata+k); //字符型  
  16.            strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放  
  17.        }  
  18.    }  
  19.    UpdateData(FALSE); //更新编辑框内容  


6最后的测试

    需要一跟串口线,一个usb转串口(这样一台电脑就可以测试了),我们要实现的功能是串口助手发送一个字节到上位机,上位机显示这个字节,并把它发送出去,串口助手接收这个字节,这里我们还需要做一些工作。

    我们首先要在上位机中接收的字节显示出来,添加一个编辑框就可以了,我们显示在编辑框中。

SetDlgItemTextA(IDC_EDIT1,strtemp);
m_ctrlComm.SetOutput(COleVariant(strtemp));//发送数据

    在OnComm()添加上面两行就可以了,

编译,运行,测试结果:


    串口助手发送3F,在上位机显示?(呵呵,你可以去查找一下ASCLL码表就知道了),串口收到了来自上位机发送过来的数据,实验就是这么简单。下一篇博客写手柄和串口的联合使用。





关键词: VC     MFC     上位机    

院士
2025-08-03 20:34:52     打赏
2楼

嘿嘿  上位机啊~~

话说使用C#开发会快很多


助工
2025-08-03 21:01:35     打赏
3楼
很想了解

工程师
2025-08-03 23:46:03     打赏
4楼
感觉你什么都会的样子。。。

专家
2025-08-03 08:46:43     打赏
5楼
这样子。。。我一直都用MFC来做的。

专家
2025-08-03 08:47:14     打赏
6楼
看看有没有帮助哈。

专家
2025-08-03 08:47:48     打赏
7楼
杂而不精,这是比较痛苦的一件事情

院士
2025-08-03 11:16:24     打赏
8楼
MFC并不属于快速开发软件

菜鸟
2025-08-03 21:27:17     打赏
9楼
学习。。。。。。

菜鸟
2025-08-03 20:20:07     打赏
10楼
谢谢分享

共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
什么是处女膜 引体向上练什么肌肉 项羽的老婆叫什么 血型o型rh阳性是什么意思 狰狞是什么意思
用什么能把牙齿洗白 2.4什么星座 咖啡不能和什么一起吃 不解之谜的意思是什么 打嗝多是什么原因
什么是普世价值 孕晚期宫缩是什么感觉 小孩积食吃什么 dha宝宝什么时候吃最好 网球肘用什么药
骨折不能吃什么 倒立有什么好处和坏处 女性为什么会得疱疹 仁德是什么意思 伏天吃什么
手足口病吃什么药hcv8jop7ns5r.cn 雨花石是什么石头hcv8jop1ns6r.cn 半边脸疼是什么原因hcv9jop6ns2r.cn 抛砖引玉是什么生肖hcv8jop3ns3r.cn 梦见自己被火烧是什么意思wuhaiwuya.com
天津是什么省hcv8jop0ns0r.cn 醪糟是什么东西hlguo.com 霉菌性阴道炎用什么栓剂hcv9jop5ns8r.cn 胃湿热吃什么中成药hcv8jop4ns7r.cn 臭氧是什么baiqunet.com
淼怎么读什么意思hcv7jop6ns3r.cn 除了胃镜还有什么检查胃的方法吗inbungee.com abo什么意思hcv8jop2ns4r.cn 说梦话是什么原因引起的hcv9jop1ns0r.cn b长什么样xjhesheng.com
私房照是什么hcv8jop8ns8r.cn 雌蕊由什么组成0735v.com 推什么出什么youbangsi.com 吃什么拉肚子hcv8jop7ns0r.cn 小孩缺铁有什么症状hcv8jop5ns8r.cn
百度