STM32F103RB+连接RC522+python串口保存数据

一、准备工作
1.Stm32103RB板子,rc522模块,PyCharm软件

2.stm32f103rb原理图

由原理图我们可以知道
Stm32103RB板子的串口输出和输入是PA2和PA3

二、代码编写

  1. 连线说明:
  • 1–SDA <----->PA4
  • 2–SCK <----->PA5
  • 3–MOSI <----->PA7
  • 4–MISO <----->PA6
  • 5–悬空
  • 6–GND <----->GND
  • 7–RST <----->PB0
  • 8–VCC <----->VCC
  1. 可以自己改引脚

         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 )
    
  2. 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

四、问题

  1. 如果刷卡的时候重复刷,会报错,因为ID唯一
  2. 对于ID的数据没有任何处理
  3. 对于具体一些rc522代码函数,不需要很懂,会用就行!

资源下载:链接:https://download.csdn.net/download/qq_40501206/12308681

STM32F103RB+连接RC522+python串口输出保存数据相关推荐

  1. python遍历data、并输出结果_获取python运行输出的数据并解析存为dataFrame实例

    在学习xg的 时候,想画学习曲线,但无奈没有没有这个 evals_result_ AttributeError: 'Booster' object has no attribute 'evals_re ...

  2. android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图

    今天为大家分享一篇使用Python串口实时显示数据并绘图的例子,具有很好的参考价值,希望对大家有所帮助. 一.安装pyserial以及基本用法 使用pyserial进行串口传输,在cmd下输入命令pi ...

  3. python串口数据绘图_使用Python串口实时显示数据并绘图的例子

    使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...

  4. python中texttable库显示实时数据_用Python串口实时显示数据并绘图pyqtgraph

    用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...

  5. 用Python串口实时显示数据并绘图pyqtgraph(详细教程)

    用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...

  6. python读取串口数据 绘图_使用Python串口实时显示数据并绘图的例子

    使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:Anaconda3Scri ...

  7. python将输出保存为txt_Python3将数据保存为txt文件的方法

    Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt",'a') #若文件不存在,系统自动创建.'a'表示可 ...

  8. 用Python串口实时显示数据并绘图

    使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...

  9. Python为输出的数据绘制表格

    在Python开发环境中,输出数据时没有表格.没有对齐,当数据较多的情况下看起来非常的凌乱,估计很多人像我一样为这个事情而烦恼. 左图是我在PyCharm开发环境下输出的数据.下面我们通过Python ...

最新文章

  1. C#编程概念系列(一):面向对象编程
  2. jQuery取值的一些奇奇怪怪的操作
  3. linux fedora35让GRUB 2记住上一次启动的操作系统
  4. finalshell连接失败解决方法_Windows 无法连接到SENS的解决方法
  5. linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
  6. java+逆向工程怎么运行_MyBatis逆向工程的创建和使用
  7. 怎么在html页面和js里判断是否是IE浏览器
  8. 在Project中引用zedgraph控件
  9. 放弃深度学习?我承认是因为线性代数
  10. python is beautiful_python自动化报告BeautifulReport用法
  11. 读取SqlServer表名及结构
  12. 食住玩|3dmax2009到3dmax2022下载安装软件渲染器VRAY与CORONA,提升3dmax疯狂模渲大师一点儿不难!
  13. 求是量子产业观察:中国量子信息产业发展迅速,初创企业成为新兴力量
  14. 阿里巴巴淘宝网电子商务模式调查分析
  15. 一台电脑借助另一台电脑实现上网
  16. 群晖6.2开启shr格式
  17. 本博客通知(亓官劼)
  18. 编程之美2013年大赛解题思路--初赛(A)
  19. ns2 + GT-ITM
  20. 【Dart 教程系列第 10 篇】Dart 之 removeLast 删除数组的最后一个元素

热门文章

  1. 《南溪的目标检测学习笔记》——激活函数的学习笔记
  2. Python 屏幕取词功能?你知道怎么实现吗?
  3. 二进制最大公约数算法
  4. Python版中秋佳节月饼抢购脚本
  5. 对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。
  6. 迟来的互联网金融政策可能是把双刃剑
  7. rust发射台主楼_专业英语填空与翻译题
  8. Toolbar实战(来点小栗子...)
  9. HTML之常见测试网址
  10. 3D打印软件Cura的二次开发(GUI)--环境搭建