Python读取SD卡二进制数据

news2024/12/23 9:10:34

在我们使用 STM32 或者 FPGA 采集数据的时候,需要将数据存储到SD卡中,因为数据是按照地址存储的,并且没有文件结构,所以不能直接用电脑的文件管理器读取,下面是一种读取数据的办法

实验平台

正点原子STM32F407ZG探索者

STM32源码

识别以回车结尾的数据

任何二进制数据都可以识别的

Python生成写入的数据

# %%
# 定义生成文件的大小(字节数)
file_size = 512

# 递增数据的起始值
start_value = 1

# 打开文件并写入递增数据
with open('output.bin', 'wb') as file:
    # 递增循环直到达到文件大小
    for i in range(file_size):
        # 将递增数据写入文件(使用小端字节序)
        file.write(start_value.to_bytes(1, byteorder='little'))
        # 递增起始值
        start_value += 1
        # 如果起始值超过255,则回绕到0
        if start_value > 10:
            start_value = 0

运行完此代码后,将会在当前文件夹里面生成一个output.bin的二进制文件,我们可以使用16进制的文本阅读器打开查看里面的内容
在这里插入图片描述

Python读取SD卡代码

使用读卡器将 SD 卡连接到电脑上,
如果弹出磁盘已损坏之类的千万不要管!!!
如果弹出磁盘已损坏之类的千万不要管!!!
如果弹出磁盘已损坏之类的千万不要管!!!
继续往下看!

import struct
disk = open(r"\\.\PhysicalDrive1","rb") # 打开磁盘0,PhysicalDrive不区分大小写
# 读取第一个扇区, 也就是磁盘主引导记录, 1扇区为512字节
data = disk.read(512)
data = struct.unpack(len(data)*'B',data)
print(data)

然后注意上方代码中的PhysicalDrive1这里的1对应电脑的硬盘序号,可以此电脑(右键)->管理->磁盘管理中看到,这里的序号就是 PhysicalDrive 后面要跟的数字,我的电脑显示是磁盘 1,所以写的是 1
在这里插入图片描述
在这里插入图片描述

验证结果

运行上面的程序即可得到结果,这里是没有解包的结果
在这里插入图片描述
取消注释下列代码后的结果

data = struct.unpack(len(data)*'B',data)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现代化智能十防一体化智慧档案馆平台所具备的必要功能

现代化智能档案室的建设以物联网技术为支撑,包括智能密集架、恒温恒湿消毒净化设备、温湿度传感器、空气质量传感器、空气净化消毒设备、红外防盗设备、门禁设备、防火设备、漏水设备、预警设备、视频监控设备等,集中为一体的管理平台为智能档案室集成平…

金融行业机房监控4大难题?你中招了吗

信息化时代的今天,信息成为我们生活和工作中不可缺少的一部分,由金融行业系统承担,每天有大量的数据交换。 因此,近年来,银行系统对其机房的要求也越来越严格,同时也越来越向智能化、集约化方向发展。 金融…

opencv c++小笔记本(三)

opencv 一图像通道的分离和合并二.图像色彩改变三.简单形状识别1.灰度处理2.高斯滤波3.边缘检测4.膨胀 三.像素点统计四.多边形的绘制和填充五.鼠标操作与响应(截图)六.图像的像素转换和归一化七.视频文件摄像头使用八.视频的处理与保存九.图像直方图十.…

ESP32-C2开发板 Homekit程序示例

准备 1.1硬件ESP32 C2开发板,如图1-1所示 图1-1 ESP32 C2开发板 1.2软件 CozyLife APP可以在各大应用市场搜索下载,也可以扫描二维码下载如图1-2所示 HomeKit flash download tool 烧录工具 esp32c2 homkit演示固件 烧录教程 打开flash_download_to…

实用工具篇(一):JApiDocs

JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后端代码都是自己写的,否则API…

redis哨兵模式原理

概述 为了实现redis集群的高可用,redis经历了好几次迭代,从最开始的主从模式,到哨兵模式,再到现在的集群模式,可以说架构的优化越来越好,那本篇文章就介绍一下redis的哨兵模式,不过我司其实使用…

阿里云服务器部署flask简单方法

记录如何在阿里云服务器上部署flask接口并实现公网访问。 文章目录 1. 简介2. 部署python3环境3. 生成requirement.txt4. 将项目打包上传5. 安装依赖库6. 查看防火墙7. 测试能否公网访问 1. 简介 因落地通话callback服务测试,需要我写一个测试demo,用于…

Unity Shader中使用GLSL创建材质

目录 Unity Shader格式Properties怎么在脚本中使用类似于glUniform()的功能呢? SubShaderTagsLODpasspass内的tags说明pass内的代码段(GLSL)GLSL与CG语言的差异1. GLSL不可在外部定义结构体2. 在UnityShader中Uniform可以写在vert frag外面 S…

如何处理图片排重(精准排重,相似排重)

图片相似度对比 1、需求 假如有一个图片池,存有1亿图片。给一张目标图片,在图片池中做匹配。 判断一张图片是否在图片池中出现过。(完全一样)判断有没有相似的出现过。比如两张图相似度90,两张图片是在描述一件事情。 …

请推荐几个github上的vue的pc端项目?

前言 这是github上一些高收藏的vue PC端的项目,花了一点时间做了一下vue2和vue3的资源分类整理,可以根据自己的学习进度以及需求来选择对应的项目来研究,希望对你有帮助~ Vue2 PC项目 1、 Elemen Star:53.4k 是一个基于Vue.js…

【Unity Optimize】使用图集(Sprite Atlas)优化项目

目录 1 图集(Sprite Atlas)介绍2 创建与配置Sprite Atlas2.1 创建Sprite Atlas2.1.1 Unity2D项目2.1.2 Unity3D项目 2.2 配置Sprite Atlas2.3 注意事项 3 Sprite Atlas的接口4 Sprite Atlas的优化建议 1 图集(Sprite Atlas)介绍 …

vue3+element plus+vite 引入本地静态资源图片require报错的原因和解决方案,以及如何在表格中展示图片

文章目录 一、vue3element plusvite 引入本地静态资源图片require报错的原因和解决方案二、vue 3element plusvite 项目中,在el-table中展示本地静态图片总结 一、vue3element plusvite 引入本地静态资源图片require报错的原因和解决方案 在写vue3vite项目的过程中…

Java-代码连接数据库生成POJO、Mapper

本文主要介绍如何在IDEA中,编写代码连接数据库生成对应的POJO、Mapper、Service、Controller 文章目录 前言环境搭建代码开发基本配置常量信息代码生成 测试结果 前言 在实际开发中,设计完数据库后,不可避免需要创建数据库表对应的POJO&…

rt-thread汇总

finish和msh的区别? 这个问题我一直没搞懂,可能得看一下源码才能搞清楚了吧 通过Qemu运行RT-Thread 在windows上通过QEMU快速上手RT-thread smart RT-thread启动流程 rt-thread启动流程 Kconfig语法 Kconfig语法 LOG输出 rt_kprintf("Hello …

InsCode AI ,你的良师益友!

Chat-GTP的火爆程度相信大家已经听说了,也对它有一个基本的初识,它是Open AI所研发的,读者当中应该有不少人已经接触和体验人工智能聊天,以及使用它交流很多问题有关于生活,学习等,而 InsCode AI 也一样能够…

javaWeb ssh学堂在线管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh学堂在线管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

30天从入门到精通TensorFlow1.x 第三天,tf.variable_scope()共享或重用变量

tf.variable_scope()共享或重用变量 文章目录 一、接前一天二、tf.variable_scope()共享或重用变量1. 背景2. 目的3. tf.variable_scope()基本参数3. tf.variable_scope()作用(1).命名空间(2).共享变量(3).…

软考A计划-电子商务设计师-电子商务相关技术与应用基础知识

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

cesium 相机相关

1 相机的初始位置 /*** The default rectangle the camera will view on creation.* type Rectangle*/ Camera.DEFAULT_VIEW_RECTANGLE Rectangle.fromDegrees(-95.0,-20.0,-70.0,90.0 );// set default view rectangleCameraPosition3D(this,Camera.DEFAULT_VIEW_RECTANGLE,…

Async 使用详解

Spring Boot异步调用Async 在实际开发中,有时候为了及时处理请求和进行响应,我们可能会多任务同时执行,或者先处理主任务,也就是异步调用,异步调用的实现有很多,例如多线程、定时任务、消息队列等&#xf…