这篇文章为读取打印文件(后缀为gcode的文件),并添加USMART功能调试
因为TFATFS移植与USMATRT没有什么好写的,而且在下方的链接:正点原子教程已经有详细的教程了,所以跳过了TATFS与USMART。
链接为:https://pan.baidu.com/s/1_S0394ZSRZaNxgz3QIbstA
提取码:6718

那么从这里,我们完成了对TF卡的初始化及其FATFS文件系统初始化。
现在我们可以调用FATFS内的函数。

首先我们需要知道如何打开文件,并读取文件的代码

  1. 首先对SD卡初始化,及上一篇的文章中的SD_Initialize(void)函数。
  2. 随后为FATFS申请内存,使用exfuns_init(void)函数。(其实不使用这个函数也是可以的,只不过这样可以整理内存)
  3. 挂载TF卡,使用f_mount(fs[0],“0:”,1)函数,函数内的相关变量,(是需要设定的,再正点原子教程有指出)。
  4. 挂载成功后便可使用FATFS库内的函数了。

但是还是借鉴正点原子的教程,使用正点原子封装好的一些函数。
如果完成了对FTAFS文件系统的初始化后,你会发现在工程文件中有fattester.c文件。
文件内有许多函数

函数名称 函数功能
mf_scan_files 遍历文件 (通过串口返回目录信息)
mf_mount 为磁盘注册工作区
mf_open 打开目录下的文件
mf_close 关闭文件
mf_read 读取打开文件的数据
mf_write 写入数据
mf_opendir 打开目录
mf_closedir 关闭目录
mf_readdir 打开文件夹
mf_showfree 显示剩余容量

差不多了,大概只需要使用这些

打开这个文件,你会发现这个函数

u8 mf_read(u16 len)
{u16 i,t;u8 res=0;u16 tlen=0;printf("\r\nRead file data is:\r\n");for(i=0;i<len/512;i++){res=f_read(file,fatbuf,512,&br);if(res){printf("Read Error:%d\r\n",res);break;}else{tlen+=br;for(t=0;t<br;t++)printf("%c",fatbuf[t]); }}if(len%512){res=f_read(file,fatbuf,len%512,&br);if(res)    //¶ÁÊý¾Ý³ö´íÁË{printf("\r\nRead Error:%d\r\n",res);   }else{tlen+=br;for(t=0;t<br;t++)printf("%c",fatbuf[t]); }  }if(tlen)printf("\r\nReaded data len:%d\r\n",tlen);//¶Áµ½µÄÊý¾Ý³¤¶Èprintf("Read data over\r\n");    return res;
}

因为我们需要一个每次读取一个字节的函数,所以还是需要自己写一个读取函数。(注意在fattester.c文件下下下这个函数,因为需要使用该文件内的文件变量)

u8 zf_read(void)
{u16 i,t;u8 res=0;res=f_read(file,fatbuf,1,&br);if(res)printf("Read Error:%d\r\n",res);return *fatbuf;
}

并在fattester.h头文件声明,增加
u8 zf_read(void);

到此,我们完成了每次读取打开文件的一个字节的函数

在主函数中
完成初始化后,(对USMART初始化后及TF卡、FATFS初始化后)
在串口发送mf_scan_files(“0:”),则会返回目录信息
随后发送mf_open(“0:/aa1.gcode”,1);
打开aa1.gcode文件,随后便可使用函数mf_read读取,或者使用我们写的函数zf_read读取信息。

stm32开发3D打印机(六)——使用FATFS文件系统读取打印文件 获取信息 执行转换 转换坐标(上)相关推荐

  1. stm32开发3D打印机(二)——方向、相关资料链接

    在这编文章里,我将写下3D打印机的相关资料链接和如何运作及之后写文章的大致方向 关于3D打印机(如何diy,零件的3D模型.Arduino源代码等等).写字机器人的资料等,是从多个地方收集,总而言之有 ...

  2. stm32开发3D打印机(三)——ADC热敏电阻测温、PWM控制(已完成)

    3D打印机温度读取 ADC3初始化 主控芯片为stm32f407ZG,对ADC3初始化,精度设定为12位 ADC3代码部分 void init_adc3() /ADC3初始化 {GPIO_InitTy ...

  3. stm32开发3D打印机(五)——TF卡spi协议与FATFS文件系统(已完成)

    借鉴于正点原子stm32 Mini板 下方的代码仅为对TF卡的初始化 FATFS移植方法请看正点原子Mini板教程,以及建议完成USMART的移植 因为TFATFS移植与USMATRT没有什么好写的, ...

  4. stm32开发3D打印机(零)——打印板配置(未完成)

    对BIGTREETECH 的 SKR-PRO-V1.2的端口.定时器.中断等配置说明 板子如下图所示 板子相关资料在下方链接,下文就不全部截图了 链接:https://pan.baidu.com/s/ ...

  5. STM32挂载SD卡基于Fatfs文件系统读取文件信息

    STM32挂载SD卡基于Fatfs文件系统读取文件信息

  6. [笔记]STM32基于HAL库的SDIO+FATFS文件系统

    1.背景 要用到Bootloader升级,APP部分要写运行日志.所以在Bootloader部分的FATFS要做裁剪,裁剪到只剩只读的操作就可以了,而APP端做可读可写. 2.开发板 用的是野火的ST ...

  7. 机械手末端执行器设计,YA32_1000KN四柱万能液压机设计,3D打印机,健身跑步机设计模型,摆动活塞式发动机的结构设计,手机上盖注塑模具设计与仿真加工,汽车防误踏油门机构的设计……

    顶升移载输送机SW 机械手 机械手末端执行器设计模型 机械手 凸轮驱动机构 升降机 机床设计 飞机02 YA32_1000KN四柱万能液压机设计(毕业论文+CAD图纸) 同步带及顶升机构 焊接成型机架 ...

  8. postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...

    demo代码如下: private void btnPrint_Click(object sender, EventArgs e) { if (this.btnPrint.Text == " ...

  9. 20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK

    demo代码如下: private void btnPrint_Click(object sender, EventArgs e){if (this.btnPrint.Text == "停止 ...

最新文章

  1. [铁道部信息化管理]号外
  2. unity3d 数学基础与数学辅助类
  3. MySQL还原数据库提示Unknown MySql server host
  4. day 96 关于分页的使用
  5. textFiled输入字数的控制问题之—把带输入的拼音也判断了
  6. 一个ABAP重构的实例:CL_CRM_LEAD_CREATE~SELECT_CAMPAIGNS_BY_SQL
  7. 汇编语言(二十五)之成绩分段统计
  8. org/springframework/util/backoff/BackOff
  9. 使用wxPython内嵌浏览器
  10. 综合布线系统计算机网络,综合布线 计算机网络系统
  11. 【读书笔记->统计学】12-02 置信区间的构建-t分布概念简介
  12. java读取文件相对路径_Java相对路径读取文件
  13. Emacs基础使用教程及常见命令整理
  14. 学UI设计出来可以从事什么工作?
  15. Java解决八皇后问题
  16. PHP 基本语句
  17. 国赛分区赛awd赛后总结-安心做awd混子
  18. 第十六章 - 垃圾回收相关概念
  19. mysql 烂泥行天下_烂泥:mysql数据库使用的基本命令
  20. lua与C(一):C调用lua

热门文章

  1. excel按照逗号将列数据分隔
  2. 套内面积计算机构,房子建筑面积/套内面积计算方法!快来学习
  3. viso2010画平行四边形
  4. 2-初学测开-环境治理-pipenv的安装和使用
  5. Excel删除小于等于零的数据
  6. 安卓手机反应越来越慢怎么办_安卓手机越用越卡怎么办,看完你学会了么
  7. 微信小程序获取appId
  8. Dbvisualizer中文乱码
  9. 【学习教程系列】最通俗的 Python3 网络爬虫入门
  10. 计算机组成原理DROM,计算机组成原理附加习题—徐国雄教案.doc