查看: 7607|回复: 46
收起左侧

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

[复制链接]
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 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~
      最后感谢在此工作中对我帮助过的网友与同事,还有我们强大的网络资源


         



      

     




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

0

主题

4

帖子

12

积分

实习生

发表于 2016-12-30 15:01 | 显示全部楼层 |返回版面
楼主可否分享下资源呢,最近正好打算学下MFC编程
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

424

主题

4248

帖子

1万

积分

版主

发表于 2016-12-30 15:32 | 显示全部楼层 |返回版面
AWENM 发表于 2016-12-30 15:01
楼主可否分享下资源呢,最近正好打算学下MFC编程

修改一下就可以自己用了。
勿在浮沙筑高台。
广州电子工程师朋友交流群,电子行业相关朋友交流技术,畅谈未来,活动聚会交友群。广州电子技术交流 333250113
     

108

主题

1733

帖子

5612

积分

高级工程师

发表于 2016-12-30 15:47 | 显示全部楼层 |返回版面
LZ趁热打铁,赶紧把步骤记录下来造福后人。不然过两天你自己也忘了~
博客:http://blog.csdn.net/feilusia
CC2541群(127442605);CC26xx群(557278427);
Android群(541462902);STM8/STM32群(164311667);
Linux群(512598061);职场交流群(450154342);
     

0

主题

203

帖子

688

积分

高级技术员

发表于 2016-12-30 16:08 | 显示全部楼层 |返回版面
MODbus协议   c++一直没学明白!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

443

主题

2万

帖子

7万

积分

版主

发表于 2016-12-30 17:41 | 显示全部楼层 |返回版面
2周能做成这样已经不错了;

多学习也很快的
不求高深,只求共同进步。
游名电子工程师群1:16519783;
物联网技术交流群:301879792。
     

18

主题

483

帖子

1459

积分

助理工程师

发表于 2016-12-30 17:50 | 显示全部楼层 |返回版面
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定时间隔是10ms~20ms之间,用时间来判断一帧结束的话,是如何精确到1ms的

前一段时间用C#做了一个modbus主站的上位机,一直没弄明白怎么把定时精确到1ms。网上有人建议用windows API 加线程,没有看明白怎么弄得。
所以多说两句,想问问楼主是怎么处理的
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
      

170

主题

8566

帖子

3万

积分

技术总监

asdf

发表于 2016-12-30 20:12 | 显示全部楼层 |返回版面
犹豫的大三 发表于 2016-12-30 17:50
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定 ...

用多媒体定时器,精度是1ms的。
试一下能否设置签名档
      

170

主题

8566

帖子

3万

积分

技术总监

asdf

发表于 2016-12-30 20:12 | 显示全部楼层 |返回版面
另外,Modbus没有主动应答机制,所以没必要那么苛刻要求主机。
试一下能否设置签名档
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 2016-12-30 23:09 | 显示全部楼层 |返回版面
犹豫的大三 发表于 2016-12-30 17:50
楼主的上位机是作为modbus主站
请问楼主,关于帧中断时如何判断的,是定时还是定长度?
定时器控件的最小定 ...

兄弟啊  你还真问住我了。我也是个菜鸟级别的水平 当前软件是按照超时接收的;发送是定时的。不专业也就起来好费劲。 比MCU难多了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 2016-12-30 23:11 | 显示全部楼层 |返回版面
mohanwei 发表于 2016-12-30 20:12
另外,Modbus没有主动应答机制,所以没必要那么苛刻要求主机。

对  Modbus最初是给PLC定义的一个协议 能满足应用就可以了  最关键的是上位机能工作  不死机就好
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

1

主题

68

帖子

222

积分

中级技术员

发表于 2016-12-30 23:12 | 显示全部楼层 |返回版面
mfc写个基于对话框的还可以
如果是单文档或多文档结构就歇菜了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 2016-12-30 23:13 | 显示全部楼层 |返回版面
AWENM 发表于 2016-12-30 15:01
楼主可否分享下资源呢,最近正好打算学下MFC编程

我写的谁在是太乱了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 2016-12-30 23:18 | 显示全部楼层 |返回版面
littler 发表于 2016-12-30 23:12
mfc写个基于对话框的还可以
如果是单文档或多文档结构就歇菜了

努力摸索中  稍有不慎一天都解决不了一个问题。这不因为加载的Skin 皮肤问题 导致不能修改字体颜色!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

5

主题

377

帖子

1139

积分

助理工程师

发表于 2016-12-31 14:03 | 显示全部楼层 |返回版面
用py+qt
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

6

主题

26

帖子

82

积分

初级技术员

 楼主| 发表于 2016-12-31 14:22 | 显示全部楼层 |返回版面
耗时两天解决字体颜色更改失效问题(加载Skin皮肤导致)——吼吼
原因——加载Skin皮肤导致
解决方法——HBRUSH CTRHDLG::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 重新绘图
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

18

主题

483

帖子

1459

积分

助理工程师

发表于 2017-1-3 08:44 | 显示全部楼层 |返回版面
mohanwei 发表于 2016-12-30 20:12
用多媒体定时器,精度是1ms的。

感谢mohanwei,我这就试试
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

1

主题

413

帖子

1268

积分

助理工程师

发表于 2017-1-3 09:20 | 显示全部楼层 |返回版面
pc上本来就没这么简单,win平台上应该是.net比较方便了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
     

34

主题

775

帖子

2384

积分

初级工程师

发表于 2017-1-3 13:37 | 显示全部楼层 |返回版面
我之前也用C++写了个类似的界面,折腾了好久。我是从C直接转过来写的,连MFC框架都现学现用,照着教程写。楼主所说问题实在是切中心意啊。
重庆电子交流圈:521107487,欢迎各位工程师朋友们加入,一起交流讨论,互动分享,共同进步。
     

3

主题

84

帖子

265

积分

中级技术员

发表于 2017-1-3 16:42 | 显示全部楼层 |返回版面
我也想做上位机玩玩。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

热门推荐上一条 /2 下一条

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