K210上利用LittleVGL制作一套酷炫的嵌入式页面
最近工程需要,需要在勘智的k210平台进行一些本体软件开发。
首当其冲的就是界面设计了。
由于k210自身存储空间不是很大,留给ROM和程序的空间并不是很多,所以littlevgl并没有吧它全部去支持了。
而是采取了一半一半的方式。
界面渲染采用了littlevgl,关键的按键消息机制也采用了原生的,但是界面的元素的回调和处理,就没有用LittleVGL了。而是采用了即时生成的方式,效果还不错,可以看一下。
k210做的界面
k210做的界面附上一个lvgl的初始化code:
#cooperation screen class RSDev(): def __init__(self,key): self.last_key = -1 lcd.init() lv.init() self._key = key #注册颜色缓冲区 self.lvgl_buf = lv.disp_buf_t() screen_width_buf = bytearray(240*10) lv.disp_buf_init(self.lvgl_buf,screen_width_buf,None,len(screen_width_buf)//4) #注册交互显示器 self.disp_drv = lv.disp_drv_t() lv.disp_drv_init(self.disp_drv) self.disp_drv.buffer = self.lvgl_buf self.disp_drv.flush_cb = lv_h.flush #交互的回调函数 self.disp_drv.hor_res = 240 self.disp_drv.ver_res = 320 lv.disp_drv_register(self.disp_drv) print("cool") #注册交互设备 self.input_dev = lv.indev_drv_t() lv.indev_drv_init(self.input_dev) self.input_dev.type=lv.INDEV_TYPE.KEYPAD self.input_dev.read_cb=self.input_func self.devs = lv.indev_drv_register(self.input_dev) self.input_group = lv.group_create() lv.group_set_style_mod_cb(self.input_group,self.group_style_func) lv.indev_set_group(self.devs,self.input_group) def input_func(self,drv,events): self._key.read() if(self._key.press_hor()): print("left") events.state = lv.INDEV_STATE.PR events.key = lv.KEY.LEFT elif(self._key.press_row()): print("right") events.state = lv.INDEV_STATE.PR events.key = lv.KEY.RIGHT elif(self._key.press_quit()): print("quit") elif(self._key.press_enter()): events.state = lv.INDEV_STATE.PR print("enter") events.key = lv.KEY.ENTER elif(self._key.unpress()): events.state = lv.INDEV_STATE.REL return False def group_style_func(self,group ,style): style.body.border.color = lv.color_make(250,0,0) style.text.color = lv.color_make(0,0,0) def read_wifi(self): return self._key._dev._nic.scan()
上一篇:
微信小程序ssm电影院售票系统app
下一篇:
基于DRV8701芯片的全桥驱动电路