LcdTools如何实现PX01读取SD中BIN文件并通过端口发出去
在实际应用中我们会碰到需要下载很大容量固件,比如TP固件几百K大小BIN文件,这种情况下用LcdTools写初始化代码的方式实现就不大现实;此时我们可以通过PX01 SD来实现。
首先,把需要操作的BIN文件考到SD卡根目录下,如下图,我测试的文件为XTB06101.XKB二进制文件;考好文件后,把SD卡装入PX01。

读取SD中BIN文件需要通过指令ReadSdBinFile()来实现,其中一个重要的变量sdrdlen来表示调用读取函数后读到的数据个数,如下图所示例程。

BIN文档操作数据量庞大,需要长整形变量来运算,这里用到了专门用来长整形变量运算函数LongDataOpera(),用长整型变量lvar0来当作读取偏移地址;Loop()函数用来做循环操作,循环数最大值不能超过32767;每次循环读取256个数据,读取完毕判断读取出来数据个数是否有效并把读取出来数据通过SPI口写出去,再判断是否读到文件末尾,怎么判断读到文件末尾?即判断读取出来的数据个数是否小于256,小于256说明文档已经读完,此时可以跳出循环,文件读取完毕。(当然,这里只是例程,把文件全部读取完毕,如果需要读取文件中某一段则需另外判断,这里不做详细解释)
下面视图为抓取SPI端口外发数据和BIN文档实际数据对比,从结果可以看出,从SD卡中读取BIN文件并通过端口外发工作正常,达到预期效果。




通过抓取比对可以看出SPI口发出的数据与BIN文档原始数据无误;上面例子只是演示如何读取SD BIN文件通过SPI端口发出方法,实际应用选用端口及数据发送流程,请根据实际资料进行编写,欢迎交流!
LcdTools如何实现PX01读取SD中BIN文件并通过端口发出去的更多相关文章
- Assets 读取assets中的文件
res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. res/raw和assets的不同点:1.res/raw中的文件会被映射到R.j ...
- scala/java读取项目中的文件
一.获取jar包的位置 1.使用类路径 String path = this.getClass().getProtectionDomain().getCodeSource().getLocation( ...
- RandomAccessFile类的使用(随机读取java中的文件)
package coreJava; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; ...
- java读取url中json文件中的json数据
有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...
- 读取Assets中的文件数据
try { // 返回的字节流 InputStream is = getResources().getAssets().open("info.txt"); // 当读取时,属于文本 ...
- 使用FileSystem自带的api读取hdfs中的文件
博客搬家自https://my.oschina.net/itsyizu/blog/ 1. 创建hadoop MapReduce项目 输入项目名称 创建好的项目初始化状态如下 编写java类 impor ...
- python 读取csv中的文件,从sftp下载文件
需要从sftp上下载一些图片文件,文件名存放在一个csv文件中.代码如下: # -*- coding:utf-8 -*- import paramiko import csv import os de ...
- android 读取 raw 中的文件。
file.getParentFile().mkdir(); file.createNewFile(); InputStream inputStream = context.getResources() ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
随机推荐
- 【Maui正式版】创建可跨平台的Maui程序,以及有关依赖注入、MVVM双向绑定的实现和演示
前言:Maui终于在昨天(2022年8月9日)推送出来了.今儿就迫不及待来把玩一下先. A.我本地已有VS2022,不过版本比较老,此处选择更新.工具 -> 获取功能和更新里面,可以获取到新版本 ...
- One---python的六种数据类型及数据转换
python的六种数据类型 python中数据类型分为不可变数据类型和可变数据类型 可变数据类型 可变数据类型包括:List(列表).Dictionary(字典).Set(集合) 不可变数据类型 不可 ...
- LuoguP5024 保卫王国(动态DP,LCT)
最小权覆盖集 = 全集 - 最大权独立集 强制取点.不取点可以使用把权值改成正无穷或负无穷实现 接下来就是经典的"动态最大权独立集"了 O(nlogn). 这不是我说的,是immo ...
- Luogu5367 【模板】康托展开 (康拓展开)
\(n^2\)暴力 #include <iostream> #include <cstdio> #include <cstring> #include <al ...
- 解决zlibrary注册后,再次登录提示密码错误的问题
很多小伙伴注册后,再登录提示电子邮件或密码错误,但是可以确认账号密码都是正确的,这种应该怎么处理呢? 其实这种问题有两种处理方式, 首先使用 https://find.looks.wang/ 检测可以 ...
- ArcGIS QGIS学习一:打开shp、geojson地图变形变扁问题(附最新坐标边界下载全国省市区县乡镇)
目录 打开的地图变扁了 修改投影坐标系 等角圆锥投影 Web墨卡托投影 一些要注意的地方 打开的地图变扁了 记得初学GIS软件时,用ArcGIS或QGIS打开省级地图的时候(shp或geojson等格 ...
- java-servlet-转发AND路径
转发: a) 什么是转发?一个web组件将未完成的任务交给另一个web组件继续做.通常是一个servlet将数据获取之后转交给jsp进行展现.注:web组件值得是servlet或者jsp b) 如何转 ...
- Vim配置文件-详解(.vimrc)
Vim配置文件的作用 Vim启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim Vim分类 系统Vim配置文件/etc/vimrc 所有系统用户在启动 ...
- wbr 文本换行规则标签
<wbr/>标签规定在文本中的何处适合添加换行符.如果文本太长,浏览器可能会在错误的位置换行,那么可以使用<wbr/>标签来添加单词换行时机. Talk is cheap. S ...
- ModelBox开发体验:使用YOLOv3做口罩检测
摘要:本案例将在ModelBox中使用YOLO v3模型,实现一个简单的口罩检测应用 本文分享自华为云社区<ModelBox开发体验Day05开发案例-使用YOLOv3做口罩检测>,作者: ...