STM32(RFID)阶段三(触屏数字键盘)
在阶段二中,已经实现了RFID读写器与主控板的相互通信,发送和接收数据串。这是最核心的一部分。不过,之前金额的改变是固定100,现在开始任意数值的增减和任意数值初始化。这部分主要跟读写器的通信协议有关,不同的读写器可能不一样,但是代码思路都是差不多的。
为了实现任意数字的输入,首先要有一个键盘,在此,我用STM32TFTLCD触屏做了一个触摸键盘(电阻屏,竖屏)。要先引入touch.c ,24cxx.c,myiic.c文件。
触屏代码
#include "delay.h"
#include "sys.h"
#include "lcd.h"
#include "key.h"
#include "touch.h"int digital=0;//键值void Load_Drow_Dialog(void)//数字键盘画屏
{LCD_Clear(WHITE);//清屏 POINT_COLOR=RED;LCD_ShowString(60,30,120,24,24,"CardID:"); LCD_ShowString(60,60,200,24,24,"money :");LCD_ShowString(60,90,200,24,24,"count :");//LCD_ShowString(60,120,200,24,24,"flag :");POINT_COLOR=BLUE;//设置字体为蓝色 LCD_ShowxNum(30,170,1,1,24,0);LCD_ShowxNum(90,170,2,1,24,0);LCD_ShowxNum(150,170,3,1,24,0);LCD_ShowString(210,170,1,24,24,"C");//充值LCD_ShowxNum(30,210,4,1,24,0);LCD_ShowxNum(90,210,5,1,24,0);LCD_ShowxNum(150,210,6,1,24,0);LCD_ShowString(210,210,1,24,24,"K");//扣费LCD_ShowxNum(30,250,7,1,24,0);LCD_ShowxNum(90,250,8,1,24,0);LCD_ShowxNum(150,250,9,1,24,0);LCD_ShowString(210,250,1,24,24,"D");//确定//LCD_ShowxNum(30,200,1,1,16,0);LCD_ShowxNum(90,290,0,1,24,0);//LCD_ShowxNum(150,200,3,1,16,0);LCD_ShowString(210,290,1,24,24,"J");//校准
// POINT_COLOR=RED;//设置画笔蓝色 LCD_DrawLine(0,315,240,315);LCD_DrawLine(0,280,240,280);LCD_DrawLine(0,240,240,240);LCD_DrawLine(0,200,240,200);LCD_DrawLine(0,160,240,160);LCD_DrawLine(60,160,60,315);LCD_DrawLine(120,160,120,315);LCD_DrawLine(180,160,180,315);
}void anjian(void)
{//......根据键值,编写逻辑功能
}void rtp_test(void)
{u8 key;while(1){Receive_One(); LCD_ShowString(150,35,200,16,16,card_id); LCD_ShowxNum(152,60,money,4,24,0); LCD_ShowxNum(152,90,num,4,24,0); //LCD_ShowxNum(190,120,flag,1,24,0);delay_ms(10); key=KEY_Scan(0);//触屏校准键tp_dev.scan(0); //扫描触摸屏.0,屏幕扫描;1,物理坐标; if(tp_dev.sta&TP_PRES_DOWN) //触摸屏被按下{ if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height){ if(tp_dev.x[0]>0&&tp_dev.x[0]<60){if(tp_dev.y[0]>160&&tp_dev.y[0]<200){ digital=1;}else if(tp_dev.y[0]>200&&tp_dev.y[0]<240){digital=4;}else if(tp_dev.y[0]>240&&tp_dev.y[0]<280){digital=7;}//else if(tp_dev.y[0]>280&&tp_dev.y[0]<320){}}else if(tp_dev.x[0]>60&&tp_dev.x[0]<120){if(tp_dev.y[0]>160&&tp_dev.y[0]<200){ digital=2;}else if(tp_dev.y[0]>200&&tp_dev.y[0]<240){digital=5;}else if(tp_dev.y[0]>240&&tp_dev.y[0]<280){digital=8;}else if(tp_dev.y[0]>280&&tp_dev.y[0]<320){digital=0;}}else if(tp_dev.x[0]>120&&tp_dev.x[0]<180){if(tp_dev.y[0]>160&&tp_dev.y[0]<200){ digital=3;}else if(tp_dev.y[0]>200&&tp_dev.y[0]<240){digital=6;}else if(tp_dev.y[0]>240&&tp_dev.y[0]<280){digital=9;}//else if(tp_dev.y[0]>280&&tp_dev.y[0]<320){}}else if(tp_dev.x[0]>180&&tp_dev.x[0]<240){if(tp_dev.y[0]>160&&tp_dev.y[0]<200){ digital=11;}else if(tp_dev.y[0]>200&&tp_dev.y[0]<240){digital=12;}else if(tp_dev.y[0]>240&&tp_dev.y[0]<280){digital=13;}else if(tp_dev.y[0]>280&&tp_dev.y[0]<320){digital=14;}}}anjian();}delay_ms(50);if(key==WKUP_PRES) //KEY0按下,则执行校准程序{LCD_Clear(WHITE);//清屏TP_Adjust(); //屏幕校准 TP_Save_Adjdata(); Load_Drow_Dialog();}}
}int main(void){ delay_init(); //延时函数初始化 LCD_Init();KEY_Init(); //按键初始化 tp_dev.init(); //触摸屏初始化touch.cLoad_Drow_Dialog(); //数字键盘rtp_test(); //键盘监控
}
以上代码,实现数字键盘输入,键值部分逻辑代码,根据实际需求编写。
STM32(RFID)阶段三(触屏数字键盘)相关推荐
- WIN7/WIN10/WIN11系统下触屏软键盘无法跟随跳出,桌面模式无法自动弹出(随动键盘)
1.开启自动弹出软键盘的功能. 按组合键 "Win+I" 进入Windows设置,选择设备 > 输入,勾上 "不处于平板电脑模式且未连接键盘时显示触摸键盘" ...
- win10触屏输入法_IT之家学院:一招让Win10屏幕键盘回归经典
感谢IT之家网友晨风的投稿 在Win10中,如果使用自带的输入法,屏幕键盘的样式看起来很简约,虽然布局和实体键盘如出一辙,但少了很多功能键,毕竟屏幕键盘的用途和实体键盘还是有差别的.一般来说,使用屏幕 ...
- WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放、播放、暂停、可拖动播放进度效果实现...
WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放.播放.暂停.可拖动播放进度效果实现 原文:WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放.播放.暂停.可拖动播放进度效果 ...
- STM32模拟USB多点触控屏
STM32模拟USB多点触控屏 开发准备 STM32的USB官方例程库JoyStickMouse STM32F103RC Windows7 代码修改 1.usb_pwr.c RESULT PowerO ...
- RIM发布全键盘触屏黑莓Bold 9900和OS7
RIM发布全键盘触屏黑莓Bold 9900和OS7 5月2日晚消息,在每年一度的黑莓世界大会(BlackBerry World,原无线企业研讨会WES)开幕前一日,RIM在美国佛罗里达奥兰多向媒体记 ...
- 14、事件类型(鼠标事件、键盘事件、触屏事件)
1.鼠标事件 鼠标事件 鼠标移入 onmouseenter 鼠标移出 onmouseleave 鼠标点击 onclick 鼠标移动 onmousemove 2.键盘事件 键盘事件 onkeydown ...
- Winform 调用Windows 触屏键盘 与 OSK悬浮键盘。
触屏键盘 private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport(&quo ...
- 自己做了一款实用 React 虚拟键盘组件,支持AntD,可用于触屏输入文本内容。
个人在做一个只有触屏的React前端开发,需要输入文本,找了一圈没有好用的React虚拟键盘插件.故自己写了一个,分享给大家. 代码如下: 文件名: VK.jsx /*-- 海皮智造 虚拟键盘 202 ...
- 为触屏手机而设计系列1—拇指操作的热区死角与控件尺寸
Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A6 ...
- 为触屏手机而设计系列1——拇指操作的“热区/死角”与“控件尺寸”
Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A ...
最新文章
- python 进度条
- ADO学习(一)基础理论
- 技术选型方案怎么写_活动运营方案怎么写?
- wince中的BSP工程的相关文件介绍
- LeetCode 138. 复制带随机指针的链表(哈希 / 深拷贝)
- photoshop切图
- linux如何查看jmx参数,linux下利用JMX监控Tomcat
- postman怎么传对象list_postman 传递json的参数里面带了List对象
- android 如何实现apk search出现在系统的推荐列表里
- GitHub 简单教程
- Mac下使用gitHub
- 7、乐趣国学—趣谈“圣贤”
- 人人开源代码生成器启报错
- 解密腾讯前端技术体系
- python中字母大小顺序_Python中的字母顺序
- 形式逻辑(01)你的逻辑怎么样?
- eNSP实验五:RIP路由协议
- python timesleep单位_python的time.sleep()有多准确?
- zt陈辉生:登陆澳洲两周年记
- 护卫神IIS设置Thinkphp的public目录的解决办法
热门文章
- 推荐系列论文三:Word2vec
- 英雄连的制作公司THQ历史
- Yar服务端与客户端交互,请求原理
- Web 自动化神器 TestCafe(二)—元素定位篇
- RFID和NFC的区别 以及门禁卡和饭卡
- 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
- 如何制作一个横版格斗过关游戏_地下城与勇士M电脑版,如何在模拟器上使用键鼠操作...
- 表达矩阵melt之后 画图 reshape gaochao ards 1: Unknown or uninitialised column: `p`. 2: Computation failed i
- Power BI 中的货币换算
- ubuntu20 关闭防火墙_ubuntu中如何关闭防火墙