| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F407虚拟键盘--4.3寸电容屏构建思路以及工程代码例程。(免费) -> 正文阅读 |
|
[嵌入式]STM32F407虚拟键盘--4.3寸电容屏构建思路以及工程代码例程。(免费) |
前言:第一次利用F407成功编写虚拟键盘,本文章通过分享自己编写程序的思路与步骤的心路历程。该工程讲解清晰,适合新手,其中有很多细节,请读者仔细阅读,工程程序源码放在最后(免费,百度网盘自提)。 硬件配置:正点原子STM32F407探索者?4.3寸电容屏(480*800)实现功能:通过虚拟键盘控制数字的输入,与删除,点击OK即可通过串口发送当前数据到上位机,也可以通过上位机发送数据到屏幕上显示。具体功能见如下视频:配置过程:1:画好虚拟键盘先布局然后在lcd屏幕上面画出虚拟键盘,调用函数LCD_ShowNum,LCD_ShowString,LCD_ShowChar,LCD_DrawRectangle 具体程序如下:
2(重点):触摸程序实现各区域的触摸程序(利用坐标扫描),并赋值给显示数组,然后调用函数在预订位置显示数组 具体程序如下:
注意:①为什么显示部分运用字符数组存放而不是运用整形变量,是因为字符数组容易实现数据的增加与删除,最重要的是加入小数点时程序简单,不需要进行计算。 ②触摸屏一次可以识别并保存5个点位,有可能一次就按下连读大量数据,怎么保证每次只按下一个数据。可以在按下后写入这个程序:
③怎么实现小数点只能输入一次,可以通过添加标志位来解决
3:编写删除程序(键位NO与RST)删除末位数据(NO键位)与清空全部数据(RST键位) RST键位就是直接清空显示数组 NO键位就是把数组最后一个元素赋值为“ ”然后数组序列减一。 但是注意小数点的处理,由于小数点只能按一次,所以删除前应该先判断该元素是否为小数点,如 果是则恢复标志位,如果不是则正常进行。 具体程序如下:
4:编写逻辑程序如果输入数据长度超过规定长度,则显示文字(超过有效长度,请重新输入)然后清空显示数组 为以后输入做好准备。 具体程序如下:
5:编写发送程序(键位OK)先初始化串口,如果按下数据则将数据发送到串口 具体程序如下:
6:编写收到程序如果接受到上位机发来的数据,则通过串口接受,然后显示到LCD上。 具体程序如下:
然后工程基本上配置完成,工程程序代码如下(免费): 链接:https://pan.baidu.com/s/1YIE3FSIl1kNtsAdf7tcdjQ 提取码:0724 如果对大家有帮助,记得点赞收藏,这篇文章是本人第一次发帖,欢迎大家交流与讨论,谢谢大家支持。以后会更新其他工程。 时间2021年7月23日 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:51:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |