野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9429|回复: 1

[emWin] emWin模拟器Visual Studio开发时无法printf打印的问题

[复制链接]
发表于 2020-3-22 14:42:27 | 显示全部楼层 |阅读模式
本帖最后由 闻平 于 2020-3-22 17:58 编辑

1emWin模拟器
为了方便用户学习evWin框架,Segger设计了一个PC仿真的工具,可以测试绝大部分GUI的功能,除了方便使用者学习之外,还可以加速项目开发进度。毕竟在PC上用Visual Studio开发的效率比单片机开发高出很多。
在使用vs2017模拟开发emWin时,发现官方带的demo无法实施输出console控制台信息,即无法printf消息。
2、常见解决方法
无法在emWin上使用打印消息,当然有很多解决方法,比如:
1)在GUI上借助emWin强大的功能,创建一个文本框,显示需要打印的消息,曲线救国,好处在单片机上也能实现,不用任何代码特殊修改,缺点是资源受限且使用繁琐。
2)按照PC开发的经验,启动log组件,nuget安装即可,如果是规模稍大的项目,这是首选。如果是为了学习嵌入式GUI而言,或者就是一个几个窗体的小工程,那就没有必要了,毕竟除了麻烦,还有加了之后嵌入式系统装不进去最终还得删除。
3)使用printf,对学习嵌入式开发者来说再熟悉不过了。开销小,基本上不用修改软件代码,模拟器和芯片都可以使用,在PC模拟器上从console输出,在嵌入式芯片上从串口或Jlink RTT输出。或者#define PRINTF printf,当release时候把宏设置为空,直接减少了代码量。
3、使用printf
vs设置路径:
[mw_shl_code=c,true]Project | Properties->Configuration Properties->Build Events->ost-Build Event
在Command Line新加一行命令:editbin /SUBSYSTEM:CONSOLE $(TargetPath)[/mw_shl_code]
其中,$(TargetPath)  就是生成好的exe程序。
当然为了使用printf,必须添加printf的标准库:#include <stdio.h>
下图示vs2017添加方法:

11111.png
4、测试代码
[mw_shl_code=c,true]#include "GUI.h"
#include <stdio.h>
//
// Recommended memory to run the sample with adequate performance
//
#define RECOMMENDED_MEMORY (1024L * 5)

/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
        GUI_Init();
        //
        // Check if recommended memory for the sample is available
        //
        if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) {
                GUI_ErrorOut("Not enough memory available.");
                return;
        }

        I16 ay[200];
        int i = 0;
        for (i = 0; i < GUI_COUNTOF(ay); i++)
        {
                if (i > 0 && i % 10 == 0) printf("\r\n");
                ay = rand() % 50;
                printf("%3d ", ay);
        }

        printf("\r\nTest GUI_DrawGraph function. Graph length = %d",  GUI_COUNTOF(ay));
        GUI_DrawGraph(ay, GUI_COUNTOF(ay), 0, 0);

  while(1);
}
[/mw_shl_code]
5、测试效果
11111111.png
回复

使用道具 举报

发表于 2020-3-23 13:38:30 | 显示全部楼层
201612311431317630.gif
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-26 04:41 , Processed in 0.028239 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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