当前位置: 首页 > wzjs >正文

简单的wordpress模板福建搜索引擎优化

简单的wordpress模板,福建搜索引擎优化,如何在公司服务器建个内部 网站,网站开发类毕业设计先展示最终实现的功能效果如下: 1.目的与意义 之前在学习STM32移植LVGL图形库的时候,搜到的很多教程都是在官网下载LVGL的文件包,然后一个个文件包含进去,还要添加路径,还要给文件改名字,最后才能修改程序…

先展示最终实现的功能效果如下:

在这里插入图片描述

1.目的与意义

之前在学习STM32移植LVGL图形库的时候,搜到的很多教程都是在官网下载LVGL的文件包,然后一个个文件包含进去,还要添加路径,还要给文件改名字,最后才能修改程序实现效果,十分繁琐,编译时还容易报错缺少各种文件,而采用KEIL的pack包直接进行移植,则可以直接跳过这些繁琐的环节,直接对文件程序进行修改。

2.LVGL pack包的获取及移植到KEIL-STM32工程上

LVGL pack包下载网址:
https://www.keil.arm.com/packs/?q=LVGL&pack-search=

在这里插入图片描述

下载之后通过keil的pack installer>file>import导入pack包即可,然后通过keil的Manage Run-Time Environment即可看到LVGL已经可以供我们移植了:
在这里插入图片描述
然后我们只是为了满足基础的使用(显示屏的显示,触摸屏的输入),所以只需要选择Essential(核心模块)和Porting(移植)即可。

其中最关键的就是2个c文件,3个h文件,我们只需要对这5个文件进行修改即可。
在这里插入图片描述
lv_conf_cmsis.h相当于LVGL提供给用户设置各种参数及使能各种功能的界面;
lv_port_disp_template为显示屏的移植部分,
lv_port_indev_template为输入设备的移植部分,其中包含鼠标、键盘、触屏等,
lv_port_fs_template为移植文件系统提供支持,里面提供了WIN、FATFS等文件系统。

首先我们打开lv_conf_cmsis.h文件进行修改:
在这里插入图片描述
LV_COLOR_DEPTH根据你屏幕显示的颜色格式进行匹配,RGB565则设为16,RGB888则设为32;
LV_COLOR_16_SWAP根据TFTLCD跟MCU的通讯方式进行设置,我采用的是FSMC 16位数据,所以置0,若使用SPI 8位数据进行通讯则置1。

在这里插入图片描述
这里可以看到LV_MEM_CUSTOM置0时由LVGL帮助申请堆(heap)内存作为LVGL的可执行内存,这里建议大于12Kb。

在这里插入图片描述
这里分别是调整显示刷新频率和输入设备检测频率,调小可以加快屏幕刷新速度和触摸屏的灵敏度,但是不宜过大,这里可以调整为5ms左右。

至此lv_conf_cmsis.h文件就修改完成了。

接下来修改lv_port_disp_template.h和.c文件对接显示屏驱动:
在这里插入图片描述
这样lv_port_disp_template.h文件就修改完成;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这样lv_port_disp_template.c文件就修改完成。

这里将我的画矩形图程序也提供给你们作参考:

void Lcd_SetRegion(uint16_t x_start,uint16_t y_start,uint16_t x_end,uint16_t y_end)
{LCD_WRITE_REG=CMD_SetCoordinateX; LCD_WRITE_DATA=(x_start>>8); LCD_WRITE_DATA=(x_start&0XFF);     LCD_WRITE_DATA=(x_end>>8); LCD_WRITE_DATA=(x_end&0XFF);    LCD_WRITE_REG=CMD_SetCoordinateY; LCD_WRITE_DATA=(y_start>>8); LCD_WRITE_DATA=(y_start&0XFF);LCD_WRITE_DATA=(y_end>>8); LCD_WRITE_DATA=(y_end&0XFF);}void LCD_Draw_Picture(uint16_t sx,uint16_t sy,uint16_t ex,uint16_t ey,uint16_t *color)
{  uint16_t height,width;uint16_t i,j;width=ex-sx+1;                 //得到图片的宽度height=ey-sy+1;                //得到图片的高度Lcd_SetRegion(sx,sy,ex,ey);ILI9341_Write_Cmd ( CMD_SetPixel );	    //开始写入GRAM,ili9341对应的命令值是0x2Cfor(i=0;i<height;i++){for(j=0;j<width;j++){          LCD_WRITE_DATA=*color;//写入颜色值color++;}}      
} 

接下来修改lv_port_indev_template.h和.c文件对接触摸屏驱动:
在这里插入图片描述
这样lv_port_indev_template.h文件就修改完成;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GT911触摸屏初始化我也放在main函数初始化那里执行了。

在这里插入图片描述
这里我也直接给出我对应的程序函数供参考(触摸屏我选用的是GT911驱动IC,通过STM32的硬件IIC进行通讯):

uint8_t Is_TP_Pressed(void)
{if(flag_touch == 1){flag_touch = 0;return 1;}return flag_touch;
}
uint16_t getTP_X_Info()
{static uint16_t tx;uint8_t clear_buf = 0;        //用于清除寄存器uint8_t xy_temp[40];          //用于接受坐标//读取触摸的坐标HAL_I2C_Mem_Read(&hi2c2, GT911_ADDR, GT911_STATUS_ADD, 2, xy_temp, 40, 0xFFF);//通知GT911已读取完坐标,清除寄存器HAL_I2C_Mem_Write(&hi2c2, GT911_ADDR, GT911_STATUS_ADD, 2, &clear_buf, 1, 0xFF);//输出第一个触摸点的坐标tx = ((uint16_t)xy_temp[3] << 8) + xy_temp[2];return tx;
}uint16_t getTP_Y_Info()
{static uint16_t ty;uint8_t clear_buf = 0;        //用于清除寄存器uint8_t xy_temp[40];          //用于接受坐标//读取触摸的坐标HAL_I2C_Mem_Read(&hi2c2, GT911_ADDR, GT911_STATUS_ADD, 2, xy_temp, 40, 0xFFF);//通知GT911已读取完坐标,清除寄存器HAL_I2C_Mem_Write(&hi2c2, GT911_ADDR, GT911_STATUS_ADD, 2, &clear_buf, 1, 0xFF);//输出第一个触摸点的坐标ty = ((uint16_t)xy_temp[5] << 8) + xy_temp[4];return ty;
}
void ILI9341_DrawPointPixel ( uint16_t usX, uint16_t usY, uint16_t color )//画点函数	
{	if ( ( usX < LCD_X_LENGTH ) && ( usY < LCD_Y_LENGTH ) ){ILI9341_SetCursor ( usX, usY );ILI9341_FillColor ( 1, color );}}

至此lv_port_indev_template.c文件就修改完成。

接下来在main.c文件里面添加对应头文件,然后对显示和触摸进行初始化,对LVGL进行初始化及开启LVGL的心跳包和任务管理函数:
在这里插入图片描述
在这里插入图片描述
请添加图片描述
在这里插入图片描述
成功之后就可以进行程序编译了,编译完成后烧录进硬件,对屏幕进行触摸应该可以看到在触摸处会留下一个个蓝色的点,这是因为我们在lv_port_indev_template.c文件的触摸点坐标获取函数里面加入了画点函数,这样便可以验证到显示和触摸已经成功跟lvgl图形库完成对接,接下来就可以畅玩LVGL了,记得验证完LVGL成功对接之后把触摸点坐标获取函数里面的画点函数删掉,否则后面一触摸就会执行画点了。

3.使用NXP的GUI Guider实现显示及触摸响应功能

在这里插入图片描述

选择一个空白模板:
在这里插入图片描述
在这里插入图片描述
由于我是要打竖显示,而默认320*240是打横显示,所以我进行了自定义宽度240和高度320:
在这里插入图片描述

首先先给背景上个底色,白色太单调了:
在这里插入图片描述

接着在左边的组件里面随便选择个控件进行测试,我选择了仪表盘:
在这里插入图片描述

接着再放一个按钮组件,并创建按钮事件,这里我们实现按钮被按下时变大且颜色变为红色,按钮松开后恢复为原来颜色:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后信息栏就会开始显示生成的过程及结果,若没有问题就会自动跳出仿真界面,同时C代码也会生成在对应的地址。
在这里插入图片描述

第一次使用的时候如果信息栏报了一行乱码的错误,那大概率是因为电脑缺失java语言环境,该软件仿真需要java环境的支持,可以通过键盘按下 win+R,然后在运行窗口输入cmd进入下面该界面,然后输出java,如果电脑具有java环境,会输出java的信息,如下图,否则会输出不是内部或外部命令。。。。。。
在这里插入图片描述

接下来就去生成工程的地址下,拷贝custom和generated两个文件夹到你的STM32工程文件夹内:
在这里插入图片描述
然后在KEIL工程里面新建一个GUI文件组,将对应的C文件添加进去,然后再把custom和generated及其下属文件夹的路径进行添加:
在这里插入图片描述
在这里插入图片描述

最后在main.c文件里面添加头文件与执行函数即可:
在这里插入图片描述
在这里插入图片描述

之后就可以编译然后进行烧录到硬件进行验证了,若编译的时候报错缺少了各种lv_font、lv_meter等文件,直接去生成GUI guider工程的路径下进行查找然后复制到STM32工程所包含的路径下即可:
在这里插入图片描述
最后硬件跑起来的结果就如仿真的一致,也就是跟开头展示的功能效果差不多。

4.结语

通过LVGL来建立图形交互界面确实很方便,而且LVGL里面也自带了各种图片格式、包括GIF格式的解码库,还可以对接Win、FATFS等各种文件系统,在使用SD卡或Nor flash的内部图片进行读取显示时就显得更加轻松,希望这篇文章也能让各位学到一点关于LVGL的应用方法。

感谢阅读!

http://www.dtcms.com/wzjs/493381.html

相关文章:

  • 东软网站建设方案百度怎么发帖子
  • 阿里云搭建网站石家庄整站优化技术
  • 个人建设网站需要什么证件吗关键词推广软件
  • 网站备案 办理网络营销成功案例有哪些2022
  • 美食门户网站源码国内做网站比较好的公司
  • 网站保护等级是企业必须做的么618网络营销策划方案
  • 今天的最新疫情seo排名点击软件推荐
  • 家纺 网站建设 中企动力手机版百度一下
  • 哪些网站是ruby做的seo优化培训课程
  • 自己注册了个域名想做一个网站吗武汉千锋教育培训机构怎么样
  • 租用网站的服务器seo l
  • 开发青年网站潍坊网站seo
  • 目前国内做情趣最好的网站关键词在线采集
  • 网站数据库做好了 怎么做网页百度咨询电话人工台
  • cdr 做网站营销团队外包
  • 怎么用软件做原创视频网站专业关键词排名软件
  • 广州网站开发公司排名谷歌浏览器下载安装2022最新版
  • 中国工程建设企业协会网站湖州网站建设制作
  • 合浦县城乡规划建设局网站网站关键词优化排名公司
  • 推广网站怎么做网上营销
  • 沈阳网站制作公司哪家好网络口碑营销案例分析
  • 北京免费网站建设论坛排名
  • 网站引导插件上海app网络推广公司电话
  • 泉州网站设计招聘网谷歌浏览器 安卓下载2023版
  • 搭建网站需要什么软件深圳seo公司排名
  • 做58同城网站需要多少钱网络推广的平台有哪些
  • 河南中恒诚信建设有限公司网站百度推广是干什么的
  • web做网站网络推广的调整和优化
  • 做网站要在工商备案吗在线网页制作系统搭建
  • 邢台网站制作费用seo网页优化培训