请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4293|回复: 19
收起左侧

[emWin上位机] 首创!基于emwin + WIN32 API的简易串口上位机![纯C语言实现,提供源码]

  [复制链接]

15

主题

66

帖子

96

积分

初级会员

积分
96
发表于 2017-6-21 11:34:22 | 显示全部楼层 |阅读模式
    硬件出身,只会C,有时想利用上位机调试特定命令很麻烦,找不到资源,又没时间精力学习C++/C#/java/QT自己写个上位机,突发奇想,emwin模拟器本身就是用C++实现的,那么它肯定可以做上位机,我就想到了微软的WIN32 API,主要特色就是emwin只要学好,能做出特别漂亮绚丽的界面,现在的串口上位机界面都太单调,没有美感.
     微软的资料全,经过不断搜集资料,终于实现了一个简单串口上位机,源码在最后提供,这是效果截图:
    另一台电脑串口发过来的字符串显示,程序里利用回车判断结束:


1_看图王.jpg
点击"SEND"后,另一台电脑收到的字符串:

2.jpg
使用WIN32 API,只需要包含这个
windows.h头文件即可:
333.jpg

部分程序截图:
5.jpg


6.jpg

     
       由于win32 API资料实在是太多,我没找到怎么扫描系统当前可用的串口列表API,所以程序是固定串口号的,坛友可以在这2行根据自身情况进行串口号设置:
11.jpg


波特率设置:
222.jpg


这是源码:

USART-WIN32.zip (4 KB, 下载次数: 507)

评分

参与人数 1 +5 收起 理由
eric2013 + 5

查看全部评分

回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2017-6-21 11:45:17 | 显示全部楼层
楼主的酷贴又来了,我是来给楼主置酷的[s:151] [s:151]

ps:另外我把分类改成emWin上位机了,跟楼主说下。[s:142]
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

13

主题

54

帖子

13

积分

初级会员

积分
13
发表于 2017-6-21 13:12:22 | 显示全部楼层
[s:151]
回复

使用道具 举报

36

主题

1538

帖子

1610

积分

至尊会员

积分
1610
发表于 2017-6-22 01:07:19 | 显示全部楼层
[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

234

主题

703

帖子

1171

积分

至尊会员

积分
1171
发表于 2017-6-22 09:13:35 | 显示全部楼层
楼主这编辑器看上去挺高端的哈,用的啥软件呀?
回复

使用道具 举报

11

主题

79

帖子

198

积分

初级会员

积分
198
发表于 2017-6-22 09:35:28 | 显示全部楼层
那个有框,上面有字的效果是怎么实现的,是自己先画一个带圆角的矩形,然后在加字的吗?
回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2017-6-23 00:30:13 | 显示全部楼层

回 thinkself 的帖子

thinkself:那个有框,上面有字的效果是怎么实现的,是自己先画一个带圆角的矩形,然后在加字的吗? (2017-06-22 09:35) 
是的:

    case WM_PAINT:
            GUI_SetBkColor(GUI_BLACK);
            GUI_Clear();
            
            GUI_SetFont(GUI_FONT_24_ASCII);
            GUI_SetColor(GUI_RED);
            GUI_DrawRoundedRect(0,12,479,80,5);
            GUI_DispStringAt("RECEIVE",50, 0);
            
            GUI_SetColor(GUI_GREEN);
            GUI_DrawRoundedRect(0,117,479,200,5);
            GUI_DispStringAt("SEND",50, 110);
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

11

主题

79

帖子

198

积分

初级会员

积分
198
发表于 2017-6-23 09:29:14 | 显示全部楼层

回 eric2013 的帖子

eric2013:是的:

    case WM_PAINT:
            GUI_SetBkColor(GUI_BLACK);
....... (2017-06-23 00:30) 
哦,我以为直接自带的,看到qt里面有这个效果 的
回复

使用道具 举报

4

主题

25

帖子

33

积分

新手上路

积分
33
发表于 2017-6-26 22:57:07 | 显示全部楼层
[s:151]
精美、便捷的emWin界面设计-GLCD
回复

使用道具 举报

4

主题

76

帖子

84

积分

初级会员

积分
84
发表于 2018-11-1 14:10:04 | 显示全部楼层
回复

使用道具 举报

0

主题

4

帖子

4

积分

新手上路

积分
4
发表于 2018-11-1 15:27:09 | 显示全部楼层
谢谢分享  
回复

使用道具 举报

9

主题

139

帖子

172

积分

初级会员

积分
172
发表于 2018-11-5 09:58:44 | 显示全部楼层
本帖最后由 本五心 于 2018-11-5 09:59 编辑

大佬,niubility
回复

使用道具 举报

9

主题

62

帖子

80

积分

初级会员

积分
80
发表于 2019-11-11 09:10:59 | 显示全部楼层
Eric您好!,这个中文除了仿真器提供的例程,还有没有其他的方式,感觉操作比较麻烦,可否使用XBF格式,然后把字库存放在盘符里面,通过文件系统来读取的方法
回复

使用道具 举报

156

主题

1157

帖子

1474

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1474
发表于 2019-11-20 15:39:47 | 显示全部楼层
请教一下子,这个例子中,几个显示字符的函数都没有显示出来,怎么回事?  
这几个显示函数都在对话框创建之前。这种模拟器状态下,默认的背景窗口在哪里

Snipaste_2019-11-20_15-36-47.png



回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2019-11-20 16:19:29 | 显示全部楼层
caicaptain2 发表于 2019-11-20 15:39
请教一下子,这个例子中,几个显示字符的函数都没有显示出来,怎么回事?  
这几个显示函数都在对话框创建 ...

如果他的这个代码没有在回调函数里面,就是绘制在桌面窗口上的。
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2019-11-20 16:23:52 | 显示全部楼层
ymh792260950 发表于 2019-11-11 09:10
Eric您好!,这个中文除了仿真器提供的例程,还有没有其他的方式,感觉操作比较麻烦,可否使用XBF格式,然 ...

EMWIN 模拟器 用VS2015可以直接显示中文,不有转码了
http://www.armbbs.cn/forum.php?m ... 3404&fromuid=58
(出处: 硬汉嵌入式论坛)
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

156

主题

1157

帖子

1474

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1474
发表于 2019-11-20 16:45:46 | 显示全部楼层
eric2013 发表于 2019-11-20 16:23
EMWIN 模拟器 用VS2015可以直接显示中文,不有转码了
http://www.armbbs.cn/forum.php?mod=viewthread&t ...

用VC6.0跑模拟器,怎么让窗口显示中文?
回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2019-11-21 08:48:09 | 显示全部楼层
caicaptain2 发表于 2019-11-20 16:45
用VC6.0跑模拟器,怎么让窗口显示中文?

看我这个:
【专题教程第8期】基于emWin模拟器的USB BULK上位机开发,仅需C即可,简单易实现
http://www.armbbs.cn/forum.php?m ... 0026&fromuid=58
(出处: 硬汉嵌入式论坛)
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

156

主题

1157

帖子

1474

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1474
发表于 2019-11-21 15:20:15 | 显示全部楼层
eric2013 发表于 2019-11-21 08:48
看我这个:
【专题教程第8期】基于emWin模拟器的USB BULK上位机开发,仅需C即可,简单易实现
http://ww ...

我看了这个例程,还是不太理解。
里面有个字体的c文件,也是FontCVT生成的。在使用的时候,也没有使用GUI_UC_SetEncodeUTF8(); 为什么就可以正常显示呢?
回复

使用道具 举报

6954

主题

4万

帖子

5万

积分

管理员

健康的身体,健康的心态

Rank: 9Rank: 9Rank: 9

积分
54927
QQ
发表于 2019-11-21 17:11:42 | 显示全部楼层
caicaptain2 发表于 2019-11-21 15:20
我看了这个例程,还是不太理解。
里面有个字体的c文件,也是FontCVT生成的。在使用的时候,也没有使用GU ...

这个不是FontCvt生成的。
淘宝小店: https://armfly.taobao.com/
冷静,专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2020-4-1 01:18 , Processed in 0.530401 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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