STM32F103RB+连接RC522+python串口输出保存数据
STM32F103RB+连接RC522+python串口保存数据
一、准备工作
1.Stm32103RB板子,rc522模块,PyCharm软件
2.stm32f103rb原理图
由原理图我们可以知道
Stm32103RB板子的串口输出和输入是PA2和PA3
二、代码编写
- 连线说明:
- 1–SDA <----->PA4
- 2–SCK <----->PA5
- 3–MOSI <----->PA7
- 4–MISO <----->PA6
- 5–悬空
- 6–GND <----->GND
- 7–RST <----->PB0
- 8–VCC <----->VCC
可以自己改引脚
rcc522_config.h##################RC522配置###########define RC522_SPI_GPIO GPIOA#define RC522_SPI_GPIO_ENABLED RCC_APB2Periph_GPIOA#define RC522_SPI_GPIO_PIN_CS GPIO_Pin_4#define RC522_SPI_GPIO_PIN_SCK GPIO_Pin_5#define RC522_SPI_GPIO_PIN_MISO GPIO_Pin_6#define RC522_SPI_GPIO_PIN_MOSI GPIO_Pin_7#define RC522_SPI_GPIO_RST GPIOB#define RC522_SPI_GPIO_RST_ENABLED RCC_APB2Periph_GPIOB#define RC522_SPI_GPIO_PIN_RST GPIO_Pin_0#endif
rc522.h ***********************RC522 函数宏定义**********************/ #define RC522_CS_Enable() GPIO_ResetBits ( GPIOA, GPIO_Pin_4 ) #define RC522_CS_Disable() GPIO_SetBits ( GPIOA, GPIO_Pin_4 )#define RC522_Reset_Enable() GPIO_ResetBits( GPIOB, GPIO_Pin_0 ) #define RC522_Reset_Disable() GPIO_SetBits ( GPIOB, GPIO_Pin_0 )#define RC522_SCK_0() GPIO_ResetBits( GPIOA, GPIO_Pin_5 ) #define RC522_SCK_1() GPIO_SetBits ( GPIOA, GPIO_Pin_5 )#define RC522_MOSI_0() GPIO_ResetBits( GPIOA, GPIO_Pin_7 ) #define RC522_MOSI_1() GPIO_SetBits ( GPIOA, GPIO_Pin_7 )#define RC522_MISO_GET() GPIO_ReadInputDataBit ( GPIOA, GPIO_Pin_6 )
python编码 (根据串口的不同,自行修改,默认COM3)
import serial import pymysql # 导入pymysql包 log = 0 Data = [] #连接串口 serial = serial.Serial('COM3',115200,timeout=2) #连接COM3,波特率位115200 if serial.isOpen():print ('串口已打开') else:print ('串口未打开')# mysql def saveMySql():conn = pymysql.connect("localhost", "root", "123456", "ID") # 打开数据库,配置数据库cursor = conn.cursor() # 数据库操作try:sql = 'INSERT INTO data(ID)VALUES(%s)' # 存入数据库cursor.execute(sql, (Data)) # 执行数据库语句conn.commit()except :conn.rollback()print('data error!')conn.close()while (1):s = serial.readline()log += 1 # 传输次数记录+1data_pre = str(s) # 强制用字符串格式Data = data_pre[5:16]print(Data)if Data.strip() == '':print("请刷卡")else:saveMySql()
三、效果演示和功能实现
效果: 如不刷卡,则会一直提示刷卡 当使用IC卡刷卡时,将自动保存到数据库
刷卡后
数据库ID
四、问题
- 如果刷卡的时候重复刷,会报错,因为ID唯一
- 对于ID的数据没有任何处理
- 对于具体一些rc522代码函数,不需要很懂,会用就行!
资源下载:链接:https://download.csdn.net/download/qq_40501206/12308681
STM32F103RB+连接RC522+python串口输出保存数据相关推荐
- python遍历data、并输出结果_获取python运行输出的数据并解析存为dataFrame实例
在学习xg的 时候,想画学习曲线,但无奈没有没有这个 evals_result_ AttributeError: 'Booster' object has no attribute 'evals_re ...
- android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图
今天为大家分享一篇使用Python串口实时显示数据并绘图的例子,具有很好的参考价值,希望对大家有所帮助. 一.安装pyserial以及基本用法 使用pyserial进行串口传输,在cmd下输入命令pi ...
- python串口数据绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...
- python中texttable库显示实时数据_用Python串口实时显示数据并绘图pyqtgraph
用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...
- 用Python串口实时显示数据并绘图pyqtgraph(详细教程)
用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...
- python读取串口数据 绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:Anaconda3Scri ...
- python将输出保存为txt_Python3将数据保存为txt文件的方法
Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt",'a') #若文件不存在,系统自动创建.'a'表示可 ...
- 用Python串口实时显示数据并绘图
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...
- Python为输出的数据绘制表格
在Python开发环境中,输出数据时没有表格.没有对齐,当数据较多的情况下看起来非常的凌乱,估计很多人像我一样为这个事情而烦恼. 左图是我在PyCharm开发环境下输出的数据.下面我们通过Python ...
最新文章
- C#编程概念系列(一):面向对象编程
- jQuery取值的一些奇奇怪怪的操作
- linux fedora35让GRUB 2记住上一次启动的操作系统
- finalshell连接失败解决方法_Windows 无法连接到SENS的解决方法
- linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
- java+逆向工程怎么运行_MyBatis逆向工程的创建和使用
- 怎么在html页面和js里判断是否是IE浏览器
- 在Project中引用zedgraph控件
- 放弃深度学习?我承认是因为线性代数
- python is beautiful_python自动化报告BeautifulReport用法
- 读取SqlServer表名及结构
- 食住玩|3dmax2009到3dmax2022下载安装软件渲染器VRAY与CORONA,提升3dmax疯狂模渲大师一点儿不难!
- 求是量子产业观察:中国量子信息产业发展迅速,初创企业成为新兴力量
- 阿里巴巴淘宝网电子商务模式调查分析
- 一台电脑借助另一台电脑实现上网
- 群晖6.2开启shr格式
- 本博客通知(亓官劼)
- 编程之美2013年大赛解题思路--初赛(A)
- ns2 + GT-ITM
- 【Dart 教程系列第 10 篇】Dart 之 removeLast 删除数组的最后一个元素