emwin移植优化EMWIN后,为什么跑GUIDEMO,显示不正确

查看: 683|回复: 2
移植emwin运行GUIDEMO_Speed()后代码卡死
主题帖子精华
初级会员, 积分 107, 距离下一级还需 93 积分
在线时间16 小时
& & 我的板子是原子V2.2,用来原子大哥 "emWin5.22_Demo+Touch-战舰"的工程,在运行GUIDEMO_Speed()函数时,程序运行到GUIDEMO_ShowIntro()函数中的GUIDEMO_DrawBk()函数中的_pfDrawBk();时程序一直运行不下去了:
5cefe0a5ff7ac_900.bmp (0 Bytes, 下载次数: 0)
22:54 上传
d7bf6e4d1ae55f0eab922d13e77c.bmp (0 Bytes, 下载次数: 0)
22:54 上传
c2fd268d05a82_100.bmp (0 Bytes, 下载次数: 0)
22:54 上传
我将启动文件的stack设置成了0x,
现将代码附上,麻烦各位给指点指点,小弟在此多谢了!!!
15:34 上传
点击文件名下载附件
2.55 MB, 下载次数: 42
驽马十驾,功在不舍!
主题帖子精华
在线时间644 小时
参考我们的EMWIN例程
开往春天的手扶拖拉机
主题帖子精华
初级会员, 积分 107, 距离下一级还需 93 积分
在线时间16 小时
你好,我移植了你的emwin到我的F103VET6、NT35510,XPT2046(未使能“触摸使能”宏定义)系统上面,用的是你的/posts/list/43643.htm帖子中的精英版中的“emwin学习资料(源码、参考资料)”中的“实验1 无操作系统版本”工程,但我移植到我的系统上面后,有几下几点问题:
& & 1、界面刷新速度很慢,大概2-3S;
& & 2、GUI_Delay()函数一旦使用就会卡主
& & 3、使用GUIDEMO系列函数后,就会卡主,如使用GUIDEMO_Speed()函数后,会卡在GUIDEMO_ShowIntro()函数中的GUIDEMO_DrawBk(1)中的_pfDrawBk(DrawLogo);一句,程序就会进入硬件错误。此时的stack大小设置为0x。
& & 还请你再帮指点下,
21:17 上传
点击文件名下载附件
3.29 MB, 下载次数: 49
驽马十驾,功在不舍!
Powered by21ic官方微信-->
后使用快捷导航没有帐号?
查看: 6400|回复: 7
emwin显示驱动移植问题
&&已结帖(20)
主题帖子积分
中级技术员, 积分 163, 距离下一级还需 137 积分
中级技术员, 积分 163, 距离下一级还需 137 积分
主题帖子积分
专家等级:结帖率:80%
主题帖子积分
中级技术员, 积分 163, 距离下一级还需 137 积分
中级技术员, 积分 163, 距离下一级还需 137 积分
emwin的移植搞了2天好头大,最开始使用官方的lcd驱动,不过少文件,也不知道怎么改,最后还是用了自己写的
然后下面是问题
我在GUIDRV_template里
_SetPixelIndex加了写点函数 _GetPixelIndex加了读点函数
然后LCD_X_DisplayDriver里加了初始化,初始化是有了.....现在gui项目不能显示了,还是初始化之后的状态
我是用builder建立了一个CreateWindow函数,main里调用这个函数后,while循环GUI_Exec. 按照我ucgui的使用的话,应该是能显示出来的...可是现在就是没有
另外我是把lcd初始化函数放在LCD_X_DisplayDriver里,lcd gpio配置放在其他位置,在main里面调用了一下,这应该不会产生问题吧
主题帖子积分
高级技术员, 积分 973, 距离下一级还需 27 积分
高级技术员, 积分 973, 距离下一级还需 27 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
高级技术员, 积分 973, 距离下一级还需 27 积分
高级技术员, 积分 973, 距离下一级还需 27 积分
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData)
这个里面只需要处理LCD_X_INITCONTROLLER:初始化即可
GUIConf.h这个文件中将所有组件全部关闭 方便移植
LCDConf.c 在这个文件中包含你的LCD底层驱动的头文件
// 设置屏幕显示的底层API
&&PortAPI.pfWrite16_A0&&=LCD_WR_REG;// _LcdSetR& & & & //设置LCD寄存器函数
&&PortAPI.pfWrite16_A1&&=LCD_WR_D// _LcdWriteD //LCD写数据函数
&&PortAPI.pfWriteM16_A1 = _LcdWriteDataM//LCD写多个数据数据函数
&&PortAPI.pfReadM16_A1&&= _LcdReadDataM//& & & & LCD读多个数据数据函数
设置完之后 应该就没什么问题了 我最近移植了下 没什么问题。楼主可以试试
&&如果不够清晰 我可以帮录制移植的教程。
UCGUI源码学习中---Q群
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级技术员, 积分 150, 距离下一级还需 150 积分
中级技术员, 积分 150, 距离下一级还需 150 积分
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
jimmjimm,弄好了么!?
我移植之后发现问题多多,首先:用的是版本5.12的库,弄完之后,发现好多功能没能实现啊,比如GUI_Clear使用一次之后,其他的2d图形函数等都没用了,就是想画条线都画不出来了,想要显示字符串也不能显示,其次存储设备也不能用,总之问题多多,能不能指点下
主题帖子积分
实习生, 积分 5, 距离下一级还需 45 积分
实习生, 积分 5, 距离下一级还需 45 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 5, 距离下一级还需 45 积分
实习生, 积分 5, 距离下一级还需 45 积分
你好,我按你说的进行修改还是解决不了问题,
LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData)中已换成自己的LCD初始化,
更改了LCD_X_Config(void)函数中的&&
PortAPI.pfWrite16_A0&&= LCD_WR_REG;
&&PortAPI.pfWrite16_A1&&= LCD_WR_DATA;
&&PortAPI.pfWriteM16_A1 = LCD_WR_M_DATA;
&&PortAPI.pfReadM16_A1&&= LCD_RD_M_DATA;
的这四句指向自己写的LCD驱动,
现在问题是可以初始化LCD屏,但没有画面显示。
是不是那里还要修改?
pDevice = GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);//配置总线宽度、缓存用量和硬件程序。
以上这两句话有什么作用?要不要修改?我用的屏是3.0寸屏(ILI0)的
请帮个忙。
主题帖子积分
实习生, 积分 42, 距离下一级还需 8 积分
实习生, 积分 42, 距离下一级还需 8 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 42, 距离下一级还需 8 积分
实习生, 积分 42, 距离下一级还需 8 积分
wode 发表于
jimmjimm,弄好了么!?
我移植之后发现问题多多,首先:用的是版本5.12的库,弄完之后,发现好多功能没能 ...
请问你的问题解决了吗?我得r寸的屏也出现了类似的问题
主题帖子积分
中级技术员, 积分 190, 距离下一级还需 110 积分
中级技术员, 积分 190, 距离下一级还需 110 积分
主题帖子积分
专家等级:结帖率:20%
主题帖子积分
中级技术员, 积分 190, 距离下一级还需 110 积分
中级技术员, 积分 190, 距离下一级还需 110 积分
同问,我的液晶屏也不是官方支持的那种驱动,现在出现字符串镜像,能显示,还有个函数不明白,这个怎么移植GUIDRV_FlexColor_SetFunc,怎么跟颜色对应。。。
又快年底了。。
主题帖子积分
资深技术员, 积分 440, 距离下一级还需 60 积分
资深技术员, 积分 440, 距离下一级还需 60 积分
主题帖子积分
专家等级:结帖率:73%
主题帖子积分
资深技术员, 积分 440, 距离下一级还需 60 积分
资深技术员, 积分 440, 距离下一级还需 60 积分
同问,我的液晶屏也不是官方支持的那种驱动,现在出现字符串镜像,能显示,还有个函数不明白,这个怎么移植 ...
你好,我也在移植官方不支持的,请问修改的那个地方???我的还不能显示
技术新星奖章
人才类勋章
时间类勋章
技术奇才奖章
人才类勋章
甘甜之泉水
发帖类勋章
时间类勋章
希望之星奖章
等级类勋章
技术高手奖章
人才类勋章
时间类勋章
时间类勋章
时间类勋章&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!查看: 468|回复: 4
我移植emwin后运行demo程序发现
开窗界面的窗口内容不全了,不知道什么原因,请高手分析一下
主题帖子精华
初级会员, 积分 93, 距离下一级还需 107 积分
在线时间15 小时
我用原子的例程 &stm32f107板子上移植emwin程序,运行字符显示都正常,在自带的demo程序运行时发现 ,开窗窗口里面信息不全了,现在查不出原因,也无法进行跟踪分析,请哪位高手帮忙分析一下,是不是和底层驱动有关系。
b8c8eaa860b531484afda3e198fad071_142.jpg (0 Bytes, 下载次数: 0)
22:54 上传
主题帖子精华
在线时间644 小时
看一下填充函数是不是有问题
开往春天的手扶拖拉机
主题帖子精华
初级会员, 积分 93, 距离下一级还需 107 积分
在线时间15 小时
填充函数我单独测试了&&没有问题。
主题帖子精华
高级会员, 积分 613, 距离下一级还需 387 积分
在线时间32 小时
这个问题似成相识,检查下控件的xy坐标是不是超出屏幕范围
主题帖子精华
初级会员, 积分 93, 距离下一级还需 107 积分
在线时间15 小时
我单独测试&画点&&画线&填充函数都是正常的啊
一般emwin有那几个底层接口函数啊?
Powered by【emWin实战教程V2.0】第9章 STemWin文本显示_ucos_emwin_ucgui吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:187贴子:
【emWin实战教程V2.0】第9章 STemWin文本显示
完整65章+12章附件教程下载地址:第9章
STemWin文本显示本章节主要讲解emWin的文本显示,文本显示算是emWin的最基本功能,初学时掌握几个典型文本函数的用法就行,后面需要用到其它函数,再查阅emWin手册并了解其用法后实际测试即可。学习本章节,务必保证已经学习了第6章和第8章。9.1 初学者重要提示9.2
简单文本显示9.3
文本绘制模式9.4
举例GUI_DispStringInRectWrap函数的使用9.5
实验例程说明(RTOS)9.6 实验例程说明(裸机)9.7
3D双端东方魔幻网游「大青云」勾魂公测,穿越逆转,封神故事,全新演绎!
初学者重要提示1、文本显示的所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数的位置
下图是是英文版手册里面API函数的位置:2、文本显示涉及到的函数较多,初学者不需要将这些函数都掌握,会使用几个常用的函数即可。以后项目中需要用到其它函数功能了,再查阅emWin手册并了解其用法后实际测试即可。3、文本显示就是一些API函数的调用,没有多深的技术需要掌握,对于这一点,初学者要明白。4、如果时间充裕,可以自行在模拟器上面测试几个教程中没有用到的文本函数练练手。
简单文本显示文本显示相对比较容易,设置好文本的前景色,背景色和文本的字体就可以调用文本API函数进行显示了。其中前景色是用于设置文本的显示颜色,通过函数GUI_SetColor()来实现,而背景色是用来设置文本显示时的背景颜色或者说底色,通过函数GUI_SetBkColor()来实现。文本的字体设置是通过函数GUI_SetFont来实现,emWin本身支持的字体样式很多,不过,默认情况下仅支持ASCII字符显示。中文或者其它类型字符显示会在后面的教程中逐一跟大家进行讲解。对于本章节,大家掌握文本显示即可。另外,讲解文本显示前需要介绍下emWin支持的控制字符。控制字符是指字符代码小于32的字符。控制字符被定义为ASCII代码的一部分。emWin仅支持以下两个控制字符:
其中,换行字符在字符串中非常有用,利用换行字符作为字符串的一部分,字符串就可以拆分为多行,且只需调用一个函数就能显示。下面我们就通过一个实例来调用文本显示API,通过这个实例大家也可以测试其它的文本显示函数。我们将其移植到模拟器上面进行演示,具体移植方法,按照前面第6章和第8章的讲解,将GUIDEMO_Start.c文件里面的所有内容删掉并将下面所有代码复制到GUIDEMO_Start.c文件即可运行。#include &GUI.h& void MainTask(void){
/* 初始化emWin */
GUI_Init();
对于初学者,这个地方一定要注意,这里只是设置背景颜色,也就是给变量赋值了一下
GUI_SetBkColor(GUI_BLUE);
/* 要实现背景颜色的改变,必须的执行下面这句*/
GUI_Clear();
/* 设置字体*/
GUI_SetFont(&GUI_Font8x16);
/* 这里调用字符串显示
并实现一下换行
GUI_DispString(&\navailable&);
GUI_Delay(10);
}}实际显示效果如下:
函数GUI_DispStringAt()GUI_DispStringHCenterAt()GUI_DispStringInRect() 平时使用的也比较多,可以在模拟器上面练练手。
文本绘制模式文本的显示是通过设置前景色和背景色实现的。为了实现项目中各种文本绘制模式,用户还可以通过调用函数GUI_SetTextMode()来实现如下几种显示模式。正常文本默认情况下,文本的显示是采用的这种模式,前景色就是文本的显示颜色,而背景色根据文本字体大小来刷新所在的显示区。通过将函数GUI_SetTextMode()的参数设置为GUI_TM_NORMAL或0,可以实现正常模式。反转文本这种显示模式是将文本的显示采用背景色,而文本的底色采用的是前景色,比如正常模式显示是黑底白字,而反转后就是白底黑字。通过将函数GUI_SetTextMode()的参数设置为GUI_TM_REV,可以实现反转模式。透明文本简单的说,透明模式就是不需要背景色了,仅使用前景色显示文本,这样原有的背景效果不会受到影响,比如想在背景图片上面显示文本,透明模式就很适合,而使用正常模式,文本所在位置的图片就会被文本的背景色刷掉。通过将函数GUI_SetTextMode()的参数设置为GUI_TM_TRANS,可以实现透明模式。异或文本采用文本的异或模式,文本显示也是透明的,不过文本的显示颜色是由文本显示所在区域的背景色决定的,即对背景色取反就是文本的显示颜色。这种模式经常用于1bpp颜色配置的显示屏,比如12864单色屏,白色取反就是黑色,黑色取反就是白色。其它颜色深度采用如下的公式进行计数:新像素颜色 = 支持的颜色数 – 实际像素颜色 – 1通过将函数GUI_SetTextMode()的参数设置为GUI_TM_XOR,可以实现异或模式。透明反转文本这种模式是透明模式和反转模式的结合体,与透明文本一样,它不会覆盖背景,而且和反转文本一样,该文本会反转显示。通过将函数GUI_SetTextMode()的参数设置为GUI_TM_TRANS | GUI_TM_REV,可以实现透明反转模式。下面是这5种显示模式的具体效果实例,非常具有代表性。我们将其移植到模拟器上面进行演示,具体移植方法,按照前面第6章和第8章的讲解,将GUIDEMO_Start.c文件里面的所有内容删掉并将下面所有代码复制到GUIDEMO_Start.c文件即可运行。#include &GUI.h& void MainTask(void){
/* 初始化emWin */
GUI_Init();
/*设置字体 */
GUI_SetFont(&GUI_Font8x16);
/* 设置背景颜色 */
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
/* 设置画笔的粗细以及颜色,只有矢量函数才能设置Size */
GUI_SetPenSize(10);
GUI_SetColor(GUI_RED);
GUI_DrawLine(80,10, 240, 90);
GUI_DrawLine(80,90, 240, 10);
GUI_SetBkColor(GUI_BLACK);
GUI_SetColor(GUI_WHITE);
/*设置正常模式 */
GUI_SetTextMode(GUI_TM_NORMAL);
GUI_DispStringHCenterAt(&GUI_TM_NORMAL&, 160, 10);
/* 翻转文本 */
GUI_SetTextMode(GUI_TM_REV);
GUI_DispStringHCenterAt(&GUI_TM_REV&, 160, 26);
/* 透明文本 */
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringHCenterAt(&GUI_TM_TRANS&, 160, 42);
/*异或文本 */
GUI_SetTextMode(GUI_TM_XOR);
GUI_DispStringHCenterAt(&GUI_TM_XOR&, 160, 58);
/*设置文本模式 */
GUI_SetTextMode(GUI_TM_TRANS| GUI_TM_REV);
GUI_DispStringHCenterAt(&GUI_TM_TRANS| GUI_TM_REV&, 160, 74);
GUI_Delay(10);
}}实际显示效果如下:
关于文本设置方面还有一个函数GUI_SetTextStyle(),有兴趣的同学,也可以在模拟器上面练练手。
举例GUI_DispStringInRectWrap函数的使用此函数有一定的使用价值,我们这里简单的讲解下,先贴一下官方的使用说明。
根据此函数的三种参数设置模式,写出如下的实例,代码中将这三种模式都实现了。然后,我们将其移植到模拟器上面进行演示,具体移植方法,按照前面第6章和第8章的讲解,将GUIDEMO_Start.c文件里面的所有内容删掉并将下面所有代码复制到GUIDEMO_Start.c文件即可运行。#include &GUI.h& char acText[] = &This example demonstratestext wrapping&;GUI_RECT Rect = {10, 10, 59, 59};GUI_WRAPMODE aWm[] = {GUI_WRAPMODE_NONE,
GUI_WRAPMODE_CHAR,
GUI_WRAPMODE_WORD}; void MainTask(void){
/* 初始化emWin */
GUI_Init();
/* 设置文本显示模式 */
GUI_SetTextMode(GUI_TM_TRANS);
/* 函数GUI_DispStringInRectWrap三种显示模式 */
for (i =0; i & 3; i++){
/* 设置前景色为蓝色 */
GUI_SetColor(GUI_BLUE);
/* 使用前景色绘制的填充矩形*/
GUI_FillRectEx(&Rect);
/* 设置前景色为白色*/
GUI_SetColor(GUI_WHITE);
/* 显示文本,文本显示颜色是白色*/
GUI_DispStringInRectWrap(acText, &Rect, GUI_TA_LEFT, aWm[i]);
Rect.x0 += 60;
Rect.x1 += 60;
GUI_Delay(10);
}}实际显示效果如下:
实验例程说明(RTOS)配套例子:V6-506_STemWin实验_文本显示(RTOS)实验目的:1.
学习emWin的文本显示功能。2.
emWin功能的实现在MainTask.c文件里面。实验内容:1.
K1按键按下,串口打印任务执行情况(波特率115200,数据位8,奇偶校验位无,停止位1)。2.
K2按键按下,实现截图功能,将图片以BMP格式保存到SD卡中。3.
各个任务实现的功能如下:
App Task Start
任务:实现按键和触摸扫描。
App Task MspPro任务 :实现截图功能,将图片以BMP格式保存到SD卡中。
App Task UserIF
任务:按键消息处理。
App Task COM
任务:暂未使用。App Task GUI
任务:GUI任务。μCOS-III任务调试信息(按K1按键,串口打印):
STemWin界面显示效果:800*480分辨率界面效果,小分辨率显示屏仅可以显示一部分。STemWin动态内存配置:GUIConf.c文件中的配置如下:#define EX_SRAM
1/*1 used extern sram, 0 used internal sram */ #if EX_SRAM#define GUI_NUMBYTES
()#else#define GUI_NUMBYTES
(100*1024)#endif通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置:#define EX_SRAM
1 表示使用外部SDRAM作为emWin动态内存,大小8MB。#define EX_SRAM
0 表示使用内部SRAM作为emWin动态内存,大小100KB。默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。
实验例程说明(裸机)配套例子:V6-507_STemWin实验_文本显示(裸机)实验目的:1.
学习emWin的文本显示功能。2.
emWin功能的实现在MainTask.c文件里面。STemWin界面显示效果:800*480分辨率界面效果,小分辨率显示屏仅可以显示一部分。
STemWin动态内存配置:GUIConf.c文件中的配置如下:#define EX_SRAM
1/*1 used extern sram, 0 used internal sram */ #if EX_SRAM#define GUI_NUMBYTES
()#else#define GUI_NUMBYTES
(100*1024)#endif通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置:#define EX_SRAM
1 表示使用外部SDRAM作为emWin动态内存,大小8MB。#define EX_SRAM
0 表示使用内部SRAM作为emWin动态内存,大小100KB。默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。
续9.6程序设计:栈大小分配:系统栈大小在startup_stm32f429_439xx.s文件中配置:
栈大小的单位是字节,那么这里配置的系统栈大小就是8192字节。主函数初始化:/***********************************************************************************************************
函 数名: main*
功能说明: 标准c程序入口。*
返 回值: 无**********************************************************************************************************/int main (void){
/*初始化外设 */
bsp_Init();
/* 进入emWin主函数 */
MainTask();}硬件外设初始化硬件外设的初始化是在bsp.c文件实现:/***********************************************************************************************************
函 数名: bsp_Init*
功能说明: 初始化所有的硬件设备。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。只需要调用一次*
返 回值: 无**********************************************************************************************************/void bsp_Init(void){
由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
系统时钟缺省配置为168MHz,如果需要更改,可以修改 system_stm32f4xx.c 文件
/*使能CRC 因为使用STemWin前必须要使能 */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
/* 优先级分组设置为4,可配置0-15级抢占式优先级,0级子优先级,即不存在子优先级。*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
SystemCoreClockUpdate();
/* 根据PLL配置更新系统时钟频率变量 SystemCoreClock */
bsp_InitUart();
/* 初始化串口 */
bsp_InitKey();
/* 初始化按键变量(必须在 bsp_InitTimer() 之前调用) */
bsp_InitExtIO();
/*FMC总线上扩展了32位输出IO, 操作LED等外设必须初始化 */
bsp_InitLed();
/* 初始LED指示灯端口 */
bsp_InitI2C();
/* 配置I2C总线 */
bsp_InitExtSDRAM();
/* 初始化SDRAM*/
bsp_DetectLcdType();
/* 检测触摸板和LCD面板型号, 结果存在全局变量g_TouchType, g_LcdType */
TOUCH_InitHard();
/* 初始化配置触摸芯片 */
LCD_ConfigLTDC();
/* 初始化配置LTDC */
result =f_mount(&fs, &0:/&, 0);
/* 挂载文件系统 */}
总结文本的显示属于最基本的功能,初学者要多练练这些相关的函数,实践出真知,要不以后做一些复杂的例子,往往就是这些简单的地方出错。
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 emwin移植 stm32f103 的文章

 

随机推荐