打印

搞MCU的耗时两周写了一个串口的MFC , 没有自己想的那么简单

[复制链接]
10715|47
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DotC|  楼主 | 2016-12-30 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DotC 于 2016-12-30 23:29 编辑

            最近在做一个小产品,要是有个上位机的小软件 可以方便产品调试与测试。虽然以前从来没有从头到尾的做过这样的工作。可自己还是感觉都是控件的应该没有那么难吧,何况还有参考,自己可是学过C++的(准确的将是大学时学的C++ 语法  皮毛的知识量  O(∩_∩)O哈哈~ )? 正好当前自己还有时间,于是就把这个”简单“的任务交给了自己。谁知道当你真正想着要把它做的好用,且符合实际的产品的测试的时候并非那么简单(估计我下次在弄得时候 就简单了 O(∩_∩)O~)。前前后后捯饬了有两周的时(大牛们 可能几个小时就搞定了),呵呵。下面回顾下自己碰到的一些问题。       1、有些控件还认识不全,并不知道有些怎么使用——就用需要的几个,不懂得就不研究了,用的控件也就文本框、编辑框、组合框、列表框……。
       2、不太懂程序是如何运行的。什么消息机制,响应函数?!——百度、谷歌搜索……? 能够正常运行就好 呵呵。
       3、碰到的问题不知道哪里的原因,也不知道如何陈述这个问题。——可能这个问题比较尴尬。当你发现程序运行不对劲的时候,根本不知道是哪里导致的。毕竟是半路入行嘛。可是你会发现当你想百度、谷歌搜索你的问题的时候,因为表述的不够专业,也很难找到解决的方法。所以这个时候找个懂得人 问问吧。在此谢谢帮助我的同事和网友们。
       4、网上的例子一大把,就是这么操作的,为什么我这里就不好使。——的确有些网上例子很多的(有时候你都不知道看那一篇),可到了你这里并不好使。原因很简单——很多网上的表述是针对问题说问题,很少有提注意事项的,潜在因素是提问者必须有一定的基础知识。比如有些类定义成全局的就可以了,方法局部的就不行;响应函数放在这个类里面才行得通,不能随便放啊;右键菜单修改后,下次刷新又变成初始值了,需要自己定义一个全局变量去记录你修改了什么……
      5、数据格式转换——感觉这是我最初遇到的第一个比较烦人的问题。CString与char int %d  %X %s各种转啊。反正网上方法很多,都试试,看看那个好使。
      6、其它的诸多问题——感觉越来越卡、WIN7下一运行exe,点着点着就出现“已停止工作,正在寻找解决该问题的方案”——(我的天啊 怎么还这样  编译的时候一个错误都没有啊)超链接无效、串口会死(并发处理的不好)、右键菜单乱跑、MessageBeep( MB_OK )失效(笔记本没有蜂鸣器了)、PlaySound()声音竟然会卡、无论同步异步…………            …………
      遇到问题是好事,下次就不会发生了。看似简单的应用,自己操作起来问题还是蛮多的。O(∩_∩)O~
      最后感谢在此工作中对我帮助过的网友与同事,还有我们强大的网络资源


         



      

     




相关帖子

沙发
AWENM| | 2016-12-30 15:01 | 只看该作者
楼主可否分享下资源呢,最近正好打算学下MFC编程

使用特权

评论回复
板凳
qin552011373| | 2016-12-30 15:32 | 只看该作者
AWENM 发表于 2016-12-30 15:01
楼主可否分享下资源呢,最近正好打算学下MFC编程

修改一下就可以自己用了。

使用特权

评论回复
地板
feilusia| | 2016-12-30 15:47 | 只看该作者
LZ趁热打铁,赶紧把步骤记录下来造福后人。不然过两天你自己也忘了~

使用特权

评论回复
5
ddlxiaoxu| | 2016-12-30 16:08 | 只看该作者
MODbus协议   c++一直没学明白!

使用特权

评论回复
6
mmuuss586| | 2016-12-30 17:41 | 只看该作者
2周能做成这样已经不错了;

多学习也很快的

使用特权

评论回复
7
犹豫的大三| | 2016-12-30 17:50 | 只看该作者
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定时间隔是10ms~20ms之间,用时间来判断一帧结束的话,是如何精确到1ms的

前一段时间用C#做了一个modbus主站的上位机,一直没弄明白怎么把定时精确到1ms。网上有人建议用windows API 加线程,没有看明白怎么弄得。
所以多说两句,想问问楼主是怎么处理的

使用特权

评论回复
8
mohanwei| | 2016-12-30 20:12 | 只看该作者
犹豫的大三 发表于 2016-12-30 17:50
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定 ...

用多媒体定时器,精度是1ms的。

使用特权

评论回复
9
mohanwei| | 2016-12-30 20:12 | 只看该作者
另外,Modbus没有主动应答机制,所以没必要那么苛刻要求主机。

使用特权

评论回复
10
DotC|  楼主 | 2016-12-30 23:09 | 只看该作者
犹豫的大三 发表于 2016-12-30 17:50
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定 ...

兄弟啊  你还真问住我了。我也是个菜鸟级别的水平 当前软件是按照超时接收的;发送是定时的。不专业也就起来好费劲。 比MCU难多了

使用特权

评论回复
11
DotC|  楼主 | 2016-12-30 23:11 | 只看该作者
mohanwei 发表于 2016-12-30 20:12
另外,Modbus没有主动应答机制,所以没必要那么苛刻要求主机。

对  Modbus最初是给PLC定义的一个协议 能满足应用就可以了  最关键的是上位机能工作  不死机就好

使用特权

评论回复
12
littler| | 2016-12-30 23:12 | 只看该作者
mfc写个基于对话框的还可以
如果是单文档或多文档结构就歇菜了

使用特权

评论回复
13
DotC|  楼主 | 2016-12-30 23:13 | 只看该作者
AWENM 发表于 2016-12-30 15:01
楼主可否分享下资源呢,最近正好打算学下MFC编程

我写的谁在是太乱了

使用特权

评论回复
14
DotC|  楼主 | 2016-12-30 23:18 | 只看该作者
littler 发表于 2016-12-30 23:12
mfc写个基于对话框的还可以
如果是单文档或多文档结构就歇菜了

努力摸索中  稍有不慎一天都解决不了一个问题。这不因为加载的Skin 皮肤问题 导致不能修改字体颜色!

使用特权

评论回复
15
zhangxiyi5277| | 2016-12-31 14:03 | 只看该作者
用py+qt

使用特权

评论回复
16
DotC|  楼主 | 2016-12-31 14:22 | 只看该作者
耗时两天解决字体颜色更改失效问题(加载Skin皮肤导致)——吼吼
原因——加载Skin皮肤导致
解决方法——HBRUSH CTRHDLG::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 重新绘图

使用特权

评论回复
17
犹豫的大三| | 2017-1-3 08:44 | 只看该作者
mohanwei 发表于 2016-12-30 20:12
用多媒体定时器,精度是1ms的。

感谢mohanwei,我这就试试

使用特权

评论回复
18
huang1007| | 2017-1-3 09:20 | 只看该作者
pc上本来就没这么简单,win平台上应该是.net比较方便了

使用特权

评论回复
19
幸福至上| | 2017-1-3 13:37 | 只看该作者
我之前也用C++写了个类似的界面,折腾了好久。我是从C直接转过来写的,连MFC框架都现学现用,照着教程写。楼主所说问题实在是切中心意啊。

使用特权

评论回复
20
Carter_Lao| | 2017-1-3 16:42 | 只看该作者
我也想做上位机玩玩。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

26

帖子

2

粉丝