在阶段二中,已经实现了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)阶段三(触屏数字键盘)相关推荐

  1. WIN7/WIN10/WIN11系统下触屏软键盘无法跟随跳出,桌面模式无法自动弹出(随动键盘)

    1.开启自动弹出软键盘的功能. 按组合键 "Win+I" 进入Windows设置,选择设备 > 输入,勾上 "不处于平板电脑模式且未连接键盘时显示触摸键盘" ...

  2. win10触屏输入法_IT之家学院:一招让Win10屏幕键盘回归经典

    感谢IT之家网友晨风的投稿 在Win10中,如果使用自带的输入法,屏幕键盘的样式看起来很简约,虽然布局和实体键盘如出一辙,但少了很多功能键,毕竟屏幕键盘的用途和实体键盘还是有差别的.一般来说,使用屏幕 ...

  3. WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放、播放、暂停、可拖动播放进度效果实现...

    WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放.播放.暂停.可拖动播放进度效果实现 原文:WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放.播放.暂停.可拖动播放进度效果 ...

  4. STM32模拟USB多点触控屏

    STM32模拟USB多点触控屏 开发准备 STM32的USB官方例程库JoyStickMouse STM32F103RC Windows7 代码修改 1.usb_pwr.c RESULT PowerO ...

  5. RIM发布全键盘触屏黑莓Bold 9900和OS7

    RIM发布全键盘触屏黑莓Bold 9900和OS7 5月2日晚消息,在每年一度的黑莓世界大会(BlackBerry World,原无线企业研讨会WES)开幕前一日,RIM在美国佛罗里达奥兰多向媒体记 ...

  6. 14、事件类型(鼠标事件、键盘事件、触屏事件)

    1.鼠标事件 鼠标事件 鼠标移入 onmouseenter 鼠标移出 onmouseleave 鼠标点击 onclick 鼠标移动 onmousemove 2.键盘事件 键盘事件 onkeydown ...

  7. Winform 调用Windows 触屏键盘 与 OSK悬浮键盘。

    触屏键盘 private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport(&quo ...

  8. 自己做了一款实用 React 虚拟键盘组件,支持AntD,可用于触屏输入文本内容。

    个人在做一个只有触屏的React前端开发,需要输入文本,找了一圈没有好用的React虚拟键盘插件.故自己写了一个,分享给大家. 代码如下: 文件名: VK.jsx /*-- 海皮智造 虚拟键盘 202 ...

  9. 为触屏手机而设计系列1—拇指操作的热区死角与控件尺寸

    Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定. 触屏技术最早被应用到手机上要追溯到1999年(motorola A6 ...

  10. 为触屏手机而设计系列1——拇指操作的“热区/死角”与“控件尺寸”

    Part 1 研究背景 1.1 触屏手机界面设计的背景与挑战 挑战1:发展时间短,国内外的研究都尚处在探索阶段,充满未知和不确定.  触屏技术最早被应用到手机上要追溯到1999年(motorola A ...

最新文章

  1. python 进度条
  2. ADO学习(一)基础理论
  3. 技术选型方案怎么写_活动运营方案怎么写?
  4. wince中的BSP工程的相关文件介绍
  5. LeetCode 138. 复制带随机指针的链表(哈希 / 深拷贝)
  6. photoshop切图
  7. linux如何查看jmx参数,linux下利用JMX监控Tomcat
  8. postman怎么传对象list_postman 传递json的参数里面带了List对象
  9. android 如何实现apk search出现在系统的推荐列表里
  10. GitHub 简单教程
  11. Mac下使用gitHub
  12. 7、乐趣国学—趣谈“圣贤”
  13. 人人开源代码生成器启报错
  14. 解密腾讯前端技术体系
  15. python中字母大小顺序_Python中的字母顺序
  16. 形式逻辑(01)你的逻辑怎么样?
  17. eNSP实验五:RIP路由协议
  18. python timesleep单位_python的time.sleep()有多准确?
  19. zt陈辉生:登陆澳洲两周年记
  20. 护卫神IIS设置Thinkphp的public目录的解决办法

热门文章

  1. 推荐系列论文三:Word2vec
  2. 英雄连的制作公司THQ历史
  3. Yar服务端与客户端交互,请求原理
  4. Web 自动化神器 TestCafe(二)—元素定位篇
  5. RFID和NFC的区别 以及门禁卡和饭卡
  6. 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
  7. 如何制作一个横版格斗过关游戏_地下城与勇士M电脑版,如何在模拟器上使用键鼠操作...
  8. 表达矩阵melt之后 画图 reshape gaochao ards 1: Unknown or uninitialised column: `p`. 2: Computation failed i
  9. Power BI 中的货币换算
  10. ubuntu20 关闭防火墙_ubuntu中如何关闭防火墙