STM32与RC522简单公交卡系统的设计_stm32 rc522 电子钱包-程序员宅基地

技术标签: stm32  物联网  嵌入式硬件  arm  单片机  

目录

前言

系统的结构框图

引脚连接以及相关接口设计

 ​编辑

按键初始化函数

按键扫描函数

软件流程图

 调试过程

相关代码

挂失代码

具体功能描述

 结论与改进


前言

本篇博客旨在给大家提供一个公交卡系统的设计思路,相关硬件以及读卡写卡的流程请参考我上一篇博客。

基于STM32的RC522模块读写数据块以及电子钱包充值扣款系统的设计

系统的结构框图

目前所用到的硬件有RC522,STM32和矩阵键盘,实物图如下:

 

引脚连接以及相关接口设计

 

 RC522相关的引脚在我上一篇博客已经说过,请大家点开本博客开头的链接查看,4x4的矩阵键盘相关行我们用到的引脚是PF8,9,10,11,相关列用到的引脚是PF12,13,14,15。

按键相关代码如下:

按键初始化函数

void Matrix_ssKey_Pin_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
 
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;//行按键
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOF,&GPIO_InitStructure);
	
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ; 
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;//列按键
	GPIO_Init(GPIOF,&GPIO_InitStructure);
}

按键扫描函数

int Matrix_Key_Scan(void)
{
	u8 temp = 0;
	int key_val = -1;
	
	GPIO_ResetBits(GPIOF,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);			
	delay_us(10);
 
	temp=(GPIO_ReadInputData(GPIOF) >> 8)&0xff;	
	
	if (temp == 0xf0) 
	{
			delay_ms(50); 
			GPIO_ResetBits(GPIOF,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);			
			delay_us(10);
			temp=(GPIO_ReadInputData(GPIOF) >> 8)&0xff;	
		
			if (temp != 0xf0) 
			{
				GPIO_Write(GPIOF,0);
				delay_ms(5);
				GPIO_Write(GPIOF,(uint16_t)(0xFE << 8)); 
				
				if(((GPIO_ReadInputData(GPIOF) >> 8) & 0XF0) != 0XF0)
				{
						delay_ms(20);
 
						if(((GPIO_ReadInputData(GPIOF) >> 8) & 0XF0) != 0XF0)
						{
								temp=((GPIO_ReadInputData(GP
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_69428059/article/details/124455787

智能推荐

2020 年百度之星&#183;程序设计大赛 - 初赛一-程序员宅基地

文章浏览阅读350次。Drink传送门Accepts: 1896Submissions: 4596Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Problem Description我们有nn种不同的饮料,每种饮料有无限多瓶,第ii种饮料一瓶提供x[i..._2020 年百度之星·程序设计大赛 - 初赛一

PE文件结构解析_pe结构图-程序员宅基地

文章浏览阅读9.5k次。PE(Portable Executable)文件,即可移植的可执行文件,是 Windows 操作系统上主流的可执行文件。_pe结构图

牛客编程巅峰赛S2第6场 - 钻石&王者-程序员宅基地

文章浏览阅读147次。牛客巅峰赛钻石&王者场前言自从我一场从青铜打上钻石以后,我好像就打不了黄金场的哭唧唧(/(ㄒoㄒ)/~~),钻石王者场真呆不下去了被各路神仙吊打String II解题思路:签到题,比较简单,我的思路是 差分+枚举,我们看数据只有大概1e3,那这铁定可以暴力枚举出来啊我们枚举原串中每个位置的字母为新串的字母,然后对该字母进行差分(注意正负),然后排序后贪心选最大的可能,时间复杂...

springboot配置log4j 并打印SQL_springboot log4j打印sql-程序员宅基地

文章浏览阅读5.2k次。首先引入jar包依赖<!--Log4J--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId></dependency>因为s..._springboot log4j打印sql

git的基本命令_服务器上面查看git是否部署好了的指令-程序员宅基地

文章浏览阅读87次。GIT1.结构分析结构图一:结构图二:2.本地代码管理工作区(Workspace):添加、修改、删除`文件 暂存区(index):将工作区中的操作完成小阶段的存储,是版本库的一部分本地仓库区(Respository): 对个人开发的一个小阶段代码存储记录的各版本可以查看或者回退但是在暂存区的版本一旦提交就再也没有了(保存到仓库区中)3.本地仓库操作1.安装git#..._服务器上面查看git是否部署好了的指令

AVR单片机_基于avr单片机attiny13做的125khz rfid模拟卡|我爱单片机-程序员宅基地

文章浏览阅读1.5k次。​AVR单片机是一款高速度,高性能,高性价比的单片机。特点:(1)采用了流水线技术和先进的架构设计,工作频率高,执行速度快。(2)内置大容量程序存储器和数据存器器,省去了扩展外部存储器。(3)I/O口驱动能力强,使用方便(4)通信接口齐全,使用灵活(5)硬件资源丰富,功能强大(6)模块化设计,派生元器件众多,选择性好,性价比高(7)具有电源检测与管理功能(8)工作电压超低,可用电源范围广AVR单片机和多种分类(1)ATtiny系列,有ATtiny11/12/13/15/26/28等._基于avr单片机attiny13做的125khz rfid模拟卡|我爱单片机

随便推点

读取/加载 properties配置文件的几种方法_读取properties配置文件-程序员宅基地

文章浏览阅读3.7k次。在java项目中经常会使用到配置文件,这里就介绍几种加载配置文件的方法。_读取properties配置文件

Oracle Webcenter Content(UCM)安装完成后需要做哪些配置才可满足企业应用的需求_oracle ucm 安装配置手册-程序员宅基地

文章浏览阅读1.2k次。背景:在UCM安装完成后,通常是两台UCM服务器做的集群,需要做一些配置才能满足企业应用的需要,如文件存放路径、安全性、默认存储大小、用户同步等等,具体需要做哪些配置呢,下面给出配置详情步骤配置步骤:需要如下九步,如下:一、配置信息初始化访问节点一服务器 http://节点一ip:16200/cs,配置Native File Repository Location 和 Weblayout Fold..._oracle ucm 安装配置手册

深度linux系统gho,深度技术ghost版的win7操作系统下载-程序员宅基地

文章浏览阅读710次。很多朋友都想要深度技术ghost版的win7操作系统下载,因为深度技术ghost版的win7操作系统下载还是不错的,在业内的评价蛮高。可是我们到底要如何深度技术ghost版的win7操作系统下载呢?别急,小编就给大家带来深度技术ghost版的win7操作系统下载吧,希望大家都能够喜欢这个系统哦。一、深度快速装机版主要更新- 提升Windows Ink工作区、微软Edge浏览器、文件服务器、Wind..._linux系统ghost下载

关于生活-程序员宅基地

文章浏览阅读172次。主理 | 谢玢编辑 | Dave 董雯雪视觉 | 任染这是 「禾穗HERS女性商学院」的第034篇漫读《关于生活》By: 纳齐姆·希克梅特(土耳其)译:李以亮, Ra..._任玢图片

yum安装软件时报“没有可用的软件包”的问题_yum安装提示没有可用软件包-程序员宅基地

文章浏览阅读5.2k次,点赞6次,收藏14次。文章目录yum安装软件时报“没有可用的软件包异常”问题描述解决过程测试yum安装软件时报“没有可用的软件包异常”问题描述在需要使用s3cmd的命令行工具时,打算用yum进行安装,但是在安装的过程中遇到了“没有可可用软件包”的问题,具体问题如下。解决过程当在Linux系统中使用yum安装软件时提示 “没有可用软件包”时,代表在linux系统yum源中已经没有对应的安装包了,这时,我们需要安装EPEL。EPEL(Extra Packages for Enterprise Linux)_yum安装提示没有可用软件包

给你全面的重点学习数据库_想全面的学习数据库-程序员宅基地

文章浏览阅读691次。系统化学习数据库,重点在于查询select_想全面的学习数据库

推荐文章

热门文章

相关标签