项目(智慧教室)第三部分,人机交互在stm32上的实现

这篇具有很好参考价值的文章主要介绍了项目(智慧教室)第三部分,人机交互在stm32上的实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一。使用软件

1.stm32cubemx中针对汉字提供的软件

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互2.对数据进行处理

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

2.上面点击ok--》这里选择确定

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

3.这里选择保存即可由字符库,但是需要占用内存太大,需35M,但是stm32只有几百k,所以需要自己删减。

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

生成中文字符(用C语言表示)方式

1.编写好我们智慧教室需要用到的汉字

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

2.另存为---》Unicode编码

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

解决

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

3.所有的宋体字符删除

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

4.打开刚刚创建的txt文件

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

5.保存为font.c

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

6.我们使用汉字就调用GUI_Fontfont

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

二。中文字符移植到Codeblock中

1.使能UTF-8编码方案(emwin参考手册27.1.4中

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

GUI_UC_SetEncodeUTF8()

2.添加字符库到工程中

(1)模拟器工程中创建font文件夹

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(2)font.c添加进入font文件夹

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(3)添加到工程文件

<1>右键SimulaionTrial---->add files recursively---->找到font文件夹

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

3.设置c源文件(需要显示中文)为UTF-8编码

4.程序中引用字库

(1)找到font.c最下方的font字库

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(2)声明到子页面中(注意:主页面不需要添加)

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

5.text初始化下,修改setfont为nuicode编码

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

6..c文件通过txt文档保存为UTF-8模式

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

7.测试

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

8.循环上述内容,把所有子页面

二模拟器向stm32cumex移植

1.模拟器,stm32cumex工程文件

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

2.进入stm32cubemx的第三方工程目录下

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

3.复制

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

4.添加存在的文件

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

5.把所有窗口选择

(1)页面窗口

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(2)字符窗口

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(3)主页面图片

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(4)子页面图片

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(5)现在编译会有很多警告,表示没有声明

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

解决:创建一个.h文件,命名为include-dlg.h,放在application下。

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

#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

5.对每一个页面,mainTask添加上述头文件,表示声明

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

注意:这里可能报错

解决:

把所有的页面改为UTF-8编码即可(注意不要有漏网之鱼)

6.我们没有调用mainCreate()函数所以不会显示在stm32上,所以需要在Freertos.c中调用。

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

在Freertos中

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

    void MainTask(); 

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

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.h"

int 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"

        目的:使用封装好的操作函数。

(1)6个子页面对数据的操作

项目(智慧教室)第三部分,人机交互在stm32上的实现,人机交互

(2)

(3)文章来源地址https://www.toymoban.com/news/detail-700887.html

到了这里,关于项目(智慧教室)第三部分,人机交互在stm32上的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 项目:智慧教室(cubemx+webserver)

    第一章:需求与配置 一。项目需求         智能终端(应该是上位机)通过互联网发指令给中控主机,中控主机(stm32)接受到指令后再以无线形式对节点发出命令。 1.利用Zigbee实现教室内,无线传感网络搭建,对接环境传感器,教室内风扇,空调,灯,报警等装置 2.利用

    2024年02月10日
    浏览(21)
  • 不怕没项目做!github上的STM32 优秀开源项目和初学者项目

    TinyGo - Go语言编译器,适用于微控制器、WebAssembly、命令行工具,基于LLVM。 语言:Go 星标数:14,267+ 描述:TinyGo带来了Go语言在嵌入式系统的实现,使得STM32等微控制器编程更加多样化。 Flipper Zero Firmware - Flipper Zero的固件源码。 语言:C 星标数:10,699+ 描述:为Flipper Zero多功能

    2024年03月20日
    浏览(94)
  • 项目一:基于stm32的阿里云智慧消防监控系统

    若该文为原创文章,转载请注明原文出处。 Hi,大家好,我是忆枫,今天向大家介绍一个单片机项目。        智慧消防监控系统,是用于检测火灾,温度,烟雾的监控系统。以 stm32单片机为核心外加 MQ-2 型半导体电阻式雾敏感器件的火灾报警器,实现声光报警、 OLED显示,

    2024年02月14日
    浏览(32)
  • 基于STM32的四旋翼无人机项目(一):基础知识篇

    前言: 本篇博客为飞控专栏的第一篇系统性概述文章,将对飞控系统进行详细讲解介绍。考虑到飞控项目具有一定工程复杂度,所以作者将整个项目进行分章节教学与讲解,希望可以给读者朋友带来更好地学习体验。项目将以  C-Quad 四轴无人机为工程样机,飞行器主控为

    2024年02月08日
    浏览(77)
  • 人机交互(软件工程视角)第一、二章部分题目答案

    我认为日常生活中,我们学校的选课系统就在选课的时候就很不方便,具体是这样的,因为本来我们学校的选课的时候服务器负载能力就比较差,大家着急忙慌地选课的时候,很容易因为界面选课控件比较小,从而直接点击到课程详细信息,从而满足不了我们的要求,等到再

    2024年02月05日
    浏览(30)
  • GCP 上的人工智能实用指南:第三、四部分

    原文:Hands-On Artificial Intelligence on Google Cloud Platform 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则 2.3.c 张量处理单元 ( TPU )是 Goog

    2023年04月19日
    浏览(85)
  • STM32MP157开发板Linux+Qt项目实战:智慧家庭

    stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux+单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器,集成2个Cortex-A7核和1个Cortex-M4 核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRTOS、RT-Thread等实时操作系统。开发板搭配仿真

    2024年02月09日
    浏览(44)
  • 基于STM32的智慧农业项目(物联网专业毕设)附送源码和文档材料+学习路线

    传统农业存在着产量受到环境因素影响较大的问题,现有的农业监测系统数据太过简单、太过理想化。而随着现代科学的持续发展,一个精准化、自动化的现代智能农产品管理系统将在农业生产中起着日益关键的角色。 本项目立足于温室大棚,设计一个能够智能控制和远程监

    2024年02月03日
    浏览(46)
  • 基于STM32设计的智能教室管理系统

    本文介绍了一个智慧教室的设计,该设计由电器设备控制系统、环境检测系统和考勤系统三大模块构成。通过使用STM32微处理器和物联网电器设备控制中心,实现对教室内风扇、照明灯和窗帘等电器设备的智能化统一控制与运行。同时,环境检测系统可以实时监测环境光强、

    2024年02月15日
    浏览(32)
  • 智能导诊AI引擎,智慧医院智能导诊系统源码,以人机交互的方式引导患者实现挂号就诊

    智能导诊系统全套源码, springboot+redis+mybatisplus智能导诊系统源码 什么是智能导诊? 智能导诊系统是在医liao中使用的引导患者自助就诊挂号,在就诊的过程中有许多患者不知道需要挂什么号,要看什么病,通过智慧导诊系统,可输入自身疾病的症状表现,或选择身体部位,

    2024年01月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包