物联网智慧教室项目6

D6人机交互功能(stm32)

6.1中文字库生成原理

点阵字体及字符编码

点阵字体
  字符编码

ASCII

GB2312

Unicode

UTF-8

只要在点阵显示之前,进行调用一次就可以,一般都是在我们GUI_INIT 之后

 emWin中文手册27章

 emWin创建中文字库

 FontCvtST


 

官方英文文档第十二章

基于windows字库创建emWin字库
生成全部字库,需要占用35.2MB   STM32 flash也就是几百k

  创建小型字库

生成项目所需中文字库

温度
湿
光照
报警
灯光
风扇
传感器
控制

D6.2实现界面中文显示 

 第一步结果

 第三步结果

第四步结果

 依次添加到application每个.c文件中,除了mainDLG.c和maintask.c

D6.3代码移植到STM32上

解决兼容性的问题

MDK工程编码格式修改为utf-8


 

需要创建include_dlg.h

//在需要引用的地方进行头文件包含

#ifndef 	_DLG_H
#define 	_DLG_H
#include "DIALOG.h"

extern WM_HWIN TempCreate(void);

extern WM_HWIN MainCreate(void);

extern WM_HWIN LightCreate(void);

extern WM_HWIN LedCreate(void);

extern WM_HWIN HumCreate(void);

extern WM_HWIN FanCreate(void);

extern WM_HWIN AlarmCreate(void);
#endif

 在freeRTOS GUItask里调用 MainTask

在Touch任务里保留 Touch检测

D6.4 代码移植到STM32下

  测试出的bug

bug1:当切换界面时,出现闪屏动作,体验感非常差
bug2:当频繁切换界面时,出现花屏或者白屏

 D6.5人机交互功能测试验证

切换界面闪屏问题

使用存储设备

自动使能存储设备


 

使能存储设备API


 

 频繁切换界面花屏问题

/*********************************************************************
*
*       GUI_X_Config
*
* Purpose:
*   Called during the initialization process in order to set up the
*   available memory for the GUI.
*/
void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
	volatile U32* aMemory = (volatile U32*)(SRAM_BANK_ADDR);
  //
  // Assign memory to emWin
  GUI_ALLOC_AssignMemory((void *)aMemory, GUI_NUMBYTES);
  GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSUZE);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_32_1);
}


 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值