在实际应用中我们会碰到需要下载很大容量固件,比如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文件并通过端口发出去的更多相关文章

  1. Assets 读取assets中的文件

    res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. res/raw和assets的不同点:1.res/raw中的文件会被映射到R.j ...

  2. scala/java读取项目中的文件

    一.获取jar包的位置 1.使用类路径 String path = this.getClass().getProtectionDomain().getCodeSource().getLocation( ...

  3. RandomAccessFile类的使用(随机读取java中的文件)

    package coreJava; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; ...

  4. java读取url中json文件中的json数据

    有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...

  5. 读取Assets中的文件数据

    try { // 返回的字节流 InputStream is = getResources().getAssets().open("info.txt"); // 当读取时,属于文本 ...

  6. 使用FileSystem自带的api读取hdfs中的文件

    博客搬家自https://my.oschina.net/itsyizu/blog/ 1. 创建hadoop MapReduce项目 输入项目名称 创建好的项目初始化状态如下 编写java类 impor ...

  7. python 读取csv中的文件,从sftp下载文件

    需要从sftp上下载一些图片文件,文件名存放在一个csv文件中.代码如下: # -*- coding:utf-8 -*- import paramiko import csv import os de ...

  8. android 读取 raw 中的文件。

    file.getParentFile().mkdir(); file.createNewFile(); InputStream inputStream = context.getResources() ...

  9. 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

    [背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...

随机推荐

  1. react实战 系列 —— React 的数据流和生命周期

    其他章节请看: react实战 系列 数据流和生命周期 如何处理 React 中的数据,组件之间如何通信,数据在 React 中如何流动? 常用的 React 生命周期方法以及开源项目 spug 中使 ...

  2. ettercap之dns欺骗攻击

    前言:攻击机(kali)和受害机(win7)需在同一网段下 1.首先创建一个钓鱼克隆网站,这里我就利用CS来弄了 2.对Ettercap的dns文件进行编辑 3.开启ettercap 4.去受害机看看 ...

  3. ubuntu 搭建网络文件系统

    一.安装 miniserver sudo curl -L https://github.com/svenstaro/miniserve/releases/download/v0.4.1/miniser ...

  4. 用trie树解决最大异或对问题(On)

    在给定的N个整数A1,A2--ANA1,A2--AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N. 第二行输入N个整数A1A1-ANAN. 输出格式 输出一 ...

  5. Windows服务器限制进程CPU使用率

    在Windows server 2012 之前的服务系统 2008和2008 R2中有系统资源管理器System Resource Manager可以管理系统的CPU和内存使用情况.特别对于一些自己开 ...

  6. Python数据科学手册-Numpy数组的计算:比较、掩码和布尔逻辑,花哨的索引

    Numpy的通用函数可以用来替代循环, 快速实现数组的逐元素的 运算 同样,使用其他通用函数实现数组的逐元素的 比较 < > 这些运算结果 是一个布尔数据类型的数组. 有6种标准的比较操作 ...

  7. Kubernetes 存储系统 Storage 介绍:PV,PVC,SC

    要求:先了解数据docker容器中数据卷的挂载等知识 参考网址: https://www.cnblogs.com/sanduzxcvbnm/p/13176938.html https://www.cn ...

  8. 13. 第十二篇 二进制安装kubelet

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...

  9. 使用kubectl命令删除某个目录下所有的yaml文件

    kubectl delete -f .

  10. filebeat直接给es传输日志,自定义索引名,自定义多个索引文件

    官方文档地址: https://www.elastic.co/guide/en/beats/filebeat/7.3/elasticsearch-output.html https://www.ela ...