你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

littlevGL Windows PC模拟器

[复制链接]
anobodykey 发布时间:2018-5-30 23:19
本帖最后由 anobodykey 于 2018-5-30 23:20 编辑 ' k4 e0 @$ R! e8 M9 |. T7 \

- K2 m, N( D0 O% o: @" ~, T8 n最近littlevGL的帖子多了一些,我也要凑一下热度,不晓得最近DISC-F769板卡能不能侥幸获得呢。学习littlevGL最好的方法当然是从例程开始学起,移植也是在你的板卡已经实现了LCD显示的基础上实现的,对于不支持lcd或没有屏的朋友来说想要学习littlevGL当然是安装模拟器了,官网介绍的PC端模拟器支持三大平台,采用跨平台的eclipse 来开发,由于提供了源码,因此,即使不使用eclipse可很容易实现。这里我使用codeblock +mingw32来编译pc_simulator,首先是下载sdl2和codeblock这里就不多介绍,就是安装软件而已。下载pc_simulator源码,目录列表如下:: k% M6 x0 L$ y$ z5 y
1.JPG
6 w3 O& \9 P! y6 M这里新建了prj目录来存放codeblock工程,打开codeblock,新建控制台程序,如下:
5 W6 P( m  H( e% H8 P 2.JPG - O$ ~$ b/ `) z9 z0 r
新建完成后会自动生成一个main.c文件,删除它,重新添加源文件,右键工程->add files recurvisely会谈出对话框选择pc_simulator,codeblock会自动添加所有源文件,结构如下:
* b8 w/ |& Q4 U9 Y% |* S5 m2 m 3.JPG , Z, T1 W+ x0 R( L3 `. F5 H
接下来添加链接选项,工程右键->build options,如下:
+ ^; C2 c6 \1 D9 D! Z4 F 4.JPG % F& C, Z! s- r; o
,此外还需设置一下头文件路径,如下:
; X8 u! o6 h- ~0 [# a" z 5.JPG & |7 `1 X: ~, K- j- ?5 {
至此,环境就设置完毕,编译我们的源码,可以正常编译通过,这里还要把sdl2.dll文件放到我们的bin/debug路径下,运行,满心欢喜地要迎接时发现出了问题。。。
6 ^& `8 [5 i0 @& X% `- Y( v; D 6.JPG
4 u2 Q+ X% _' }. H/ Q7 _  c这个问题找了好久,最后发现问题是定位到了lv_drivers/display/monitor.c中sdl_refr接口中的SDL_CreateRenderer语句,通过百度可知该接口如下:; t6 c; u3 G3 u- A& i
7.JPG
! v) L+ Z4 W( z$ s' d 8.JPG
# M! r8 a+ W. f2 r& q) c三个参数只有第三个参数是有问题的,用于选择渲染模式为0时是使用得硬件加速,因为我用的windows是使用得虚拟机,所以不确定非虚拟机是否会有此问题,这里我把第三个参数改为软件渲染,再次编译运行,正常了
9 h: q4 P. O* v& X7 m 10.JPG
* D. V& b$ e" ~* G+ M) q现在可以学习littlevGL的API啦。
% {$ o9 ?5 _! l$ W5 ^9 [9 Y  Z/ K  ~) A# n+ p* V2 l! Y. A9 `# E
收藏 6 评论15 发布时间:2018-5-30 23:19

举报

15个回答
zero99 回答时间:2018-5-31 09:12:05
支持下
qwert1213131 回答时间:2018-6-8 17:19:52
这个帖子很到位额,楼主辛苦
电子星辰 回答时间:2018-6-13 11:50:17
谢谢楼主,这下没有屏也可以先学习下了
夏雨夜寐 回答时间:2018-6-15 11:27:16
学习了
湉湉 回答时间:2018-7-1 09:44:50
林光光 回答时间:2018-7-16 22:45:13
最近也发现了这款gui
jack-406837 回答时间:2018-8-27 14:42:14
typedef struct {% w9 |* Y) X* U7 W" T
    union {& @1 O: P0 U4 S& M" v5 M& }- B% `
        lv_point_t point;      /*For LV_INDEV_TYPE_POINTER the currently pressed point*/& U2 i* s2 F$ w# }# L7 l5 ~7 {4 {
        uint32_t key;          /*For LV_INDEV_TYPE_KEYPAD the currently pressed key*/
8 f, n! H/ f7 W; f1 q. j        uint32_t btn;          /*For LV_INDEV_TYPE_BUTTON the currently pressed button*/' m! [% }! N# M, _% Y
    };' \( u+ i& p* l' |; m4 K7 Y$ K
    lv_indev_state_t state;    /*LV_INDEV_EVENT_REL or LV_INDEV_EVENT_PR*/
! d7 Q. s' F  u    void *user_data;           /*'lv_indev_drv_t.priv' for this driver*/5 H5 o7 G  y$ Y  ]0 l* P
}lv_indev_data_t;
$ T& G8 ]+ i4 G1 V) j; }% ~% y) ]) Y" d* [5 s$ t. D
    data->key = keycode_to_ascii(last_key);
# ]& T! k9 y) v6 ^8 [( n2 c编译器提示structure has no member named `key',楼主怎么解决这问题的。
' d9 B5 |2 a& \# S$ s结构体中的联合体没有定义变量,只写了变量类型,这种方式 code block好像不支持的 ?
jack-406837 回答时间:2018-8-27 16:05:37
请问楼主你的mingw32 是什么版本的,怎么我这边用code blocks编译后不支持匿名结构体的?
anobodykey 回答时间:2018-8-27 19:36:16
jack-406837 发表于 2018-8-27 16:05
: ?# r8 @& Q8 K请问楼主你的mingw32 是什么版本的,怎么我这边用code blocks编译后不支持匿名结构体的? ...
! x; F' G; [5 P5 q9 r, Z' ?( Y- h
没有遇到你说的情况那,我的codeblock就是最新的17.12
jack-406837 回答时间:2018-8-27 20:50:55
那你的mingw32是什么版本的?个人感觉跟code blocks应该没啥关系,主要是编译器的问题。5 L& c3 B% @+ C6 u
你有微信吗?想咨询下
jack-406837 回答时间:2018-8-27 21:32:33
我刚才下载了一个code blocks 17.12的版本 ,里面自带了mingw32的,但是编译还是提示不支持匿名结构体的写法。我的微信号是13250138473,麻烦添加下指教。
jack-406837 回答时间:2018-8-28 15:03:40
请问楼主你的mingw版本是多少的 ?
anobodykey 回答时间:2018-8-30 07:20:28
版本应该就是codeblock自带的,没太注意版本号,你可以把你的工程传上来,我瞅一下有什么不同
anobodykey 回答时间:2018-8-30 07:25:31
jack-406837 发表于 2018-8-28 15:032 d5 A7 J5 a9 ?* K( ?
请问楼主你的mingw版本是多少的 ?
8 M  r  k) m4 |# F
版本应该就是codeblock自带的,没太注意版本号,你可以把你的工程传上来,我瞅一下有什么不同
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版