企业网搭建及应用,宁波seo外包联系方式,杭州 建设网站首页,桂林象鼻山景区介绍一。使用软件
1.stm32cubemx中针对汉字提供的软件
2.对数据进行处理 2.上面点击ok--》这里选择确定 3.这里选择保存即可由字符库#xff0c;但是需要占用内存太大#xff0c;需35M#xff0c;但是stm32只有几百k#xff0c;所以需要自己删减。 生成中文字符#xff08;用…一。使用软件
1.stm32cubemx中针对汉字提供的软件
2.对数据进行处理 2.上面点击ok--》这里选择确定 3.这里选择保存即可由字符库但是需要占用内存太大需35M但是stm32只有几百k所以需要自己删减。 生成中文字符用C语言表示方式 1.编写好我们智慧教室需要用到的汉字 2.另存为---》Unicode编码 解决 3.所有的宋体字符删除 4.打开刚刚创建的txt文件 5.保存为font.c 6.我们使用汉字就调用GUI_Fontfont 二。中文字符移植到Codeblock中
1.使能UTF-8编码方案emwin参考手册27.1.4中 GUI_UC_SetEncodeUTF8()
2.添加字符库到工程中
1模拟器工程中创建font文件夹 2font.c添加进入font文件夹 3添加到工程文件
1右键SimulaionTrial----add files recursively----找到font文件夹 3.设置c源文件需要显示中文为UTF-8编码 4.程序中引用字库
1找到font.c最下方的font字库 2声明到子页面中注意主页面不需要添加 5.text初始化下修改setfont为nuicode编码 6..c文件通过txt文档保存为UTF-8模式 7.测试 8.循环上述内容把所有子页面 二模拟器向stm32cumex移植
1.模拟器stm32cumex工程文件 2.进入stm32cubemx的第三方工程目录下 3.复制 4.添加存在的文件 5.把所有窗口选择
1页面窗口 2字符窗口 3主页面图片 4子页面图片 5现在编译会有很多警告表示没有声明 解决创建一个.h文件命名为include-dlg.h,放在application下。 #ifndef _DLG_H
#define _DLG_H
#include DIALOG.hextern 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
5.对每一个页面mainTask添加上述头文件表示声明 注意这里可能报错 解决 把所有的页面改为UTF-8编码即可注意不要有漏网之鱼 6.我们没有调用mainCreate函数所以不会显示在stm32上所以需要在Freertos.c中调用。 在Freertos中 void MainTask(); 7.没有任何错误但是烧写到stm上没有任何反应。 原因 虚拟器是鼠标进行调用的这里是触摸屏。触摸屏需要轮寻检测不然emwin没有办法触发。 解决 以前的代码清楚只需要轮寻检测 void Touch_Task(void const * argument)
{/* init code for LWIP */// MX_LWIP_Init();/* init code for FATFS *///MX_FATFS_Init();//GUI_Init();/* USER CODE BEGIN Touch_Task */printf(system is runing!\r\n);/* Infinite loop */for(;;){//ִ触摸屏需要轮询检测不然emWin没有办法触发事件GUI_TOUCH_Exec(); osDelay(20);}/* USER CODE END Touch_Task */
} 三。Keil工程中对器件操作的代码 1.Freertos任务使用void MainTask(); 2.MainTask使用主页面子页面的函数。 3.主页面子页面函数调用CmdAndSensor.c 1.创建文件到inc文件夹CmdAndSensor.h
#ifndef _CMD_AND_SENSOR_H
#define _CMD_AND_SENSOR_H//1、控制功能//1.1、风扇控制
void vFanCmd(int Cmd);//1.2、报警控制
void vAlarmCmd(int Cmd);//1.3、灯光控制
void vLedCmd(int Cmd);//2、采集功能//2.1、光照采集
int iGetLightValue(void);//2.2、温度采集
int iGetTempValue(void);//2.3、湿度采集
int iGetHumValue(void);
#endif
2.创建文件到src文件夹CmdAndSensor.c
#include CmdAndSensor.h#include gpio.hint SensorValue[3] {11001, 25, 56};//1、控制功能//1.1、风扇控制
void vFanCmd(int Cmd){// 需要控制zigbee节点后面进行开发}//1.2、报警控制
void vAlarmCmd(int Cmd){if(Cmd){HAL_GPIO_WritePin(BUZ_GPIO_Port, BUZ_Pin, GPIO_PIN_SET);}else{HAL_GPIO_WritePin(BUZ_GPIO_Port, BUZ_Pin, GPIO_PIN_RESET); }}//1.3、灯光控制
void vLedCmd(int Cmd){if(Cmd){HAL_GPIO_WritePin(GPIOF, D6_Pin|D7_Pin|D8_Pin|D9_Pin, GPIO_PIN_RESET);}else{HAL_GPIO_WritePin(GPIOF, D6_Pin|D7_Pin|D8_Pin|D9_Pin, GPIO_PIN_SET);}}//2、采集功能//2.1、光照采集
int iGetLightValue(void){return SensorValue[0];
}//2.2、温度采集
int iGetTempValue(void){return SensorValue[1];
}//2.3、湿度采集
int iGetHumValue(void){return SensorValue[2];
}
3.子页面加入头文件 #include CmdAndSensor.h 目的使用封装好的操作函数。
16个子页面对数据的操作 2 3