野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15158|回复: 5

SD卡的一个数据文件读到DAC进行转换

[复制链接]
发表于 2016-10-21 14:41:43 | 显示全部楼层 |阅读模式
SD卡的一个数据文件读到DAC进行转换,缓存是怎么设置的?怎么知道读完了一个文件里的数据?
回复

使用道具 举报

发表于 2016-10-21 14:55:41 | 显示全部楼层
f_read函数 返回的 br 参数小于要读取的btr参数,说明到达文件尾
官网说明:
http://elm-chan.org/fsw/ff/en/read.html

Description
The function starts to read data from the file at the position pointed by the read/write pointer. The read/write pointer advances as number of bytes read. After the function succeeded, *br should be checked to detect end of the file. In case of *br < btr, it means the read/write pointer reached end of the file during read operation.

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-21 15:06:20 | 显示全部楼层
flyleaf 发表于 2016-10-21 14:55
f_read函数 返回的 br 参数小于要读取的btr参数,说明到达文件尾
官网说明:
http://elm-chan.org/fsw/ff ...

那大神,我的第一个问题里是怎么解决的呢?创建缓存,然后SD卡的数据传递DAC那里处理?DAC是要定时触发的,那buffer数据怎么再到DHR?必须是SD卡面读出buffer固定长数据,然后buffer数据被DAC读完,再进行SD卡读取?怎么操作呢?大神,实在没招了:
回复 支持 反对

使用道具 举报

发表于 2016-10-21 15:08:21 | 显示全部楼层
隔壁王小二 发表于 2016-10-21 15:06
那大神,我的第一个问题里是怎么解决的呢?创建缓存,然后SD卡的数据传递DAC那里处理?DAC是要定时触发的 ...

一次从sd卡文件读一串,比如32个字节,然后就像我们例程那样给dac就行了,

处理完32字节再读取
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-21 15:39:49 | 显示全部楼层
flyleaf 发表于 2016-10-21 15:08
一次从sd卡文件读一串,比如32个字节,然后就像我们例程那样给dac就行了,

处理完32字节再读取

也就说调用了两个DMA通道,然后异步的进行,将SD卡读出一定数据,用DMA传到buffer,然后另一个DMA通道传数据,那怎么判断DAC读完buffer里的数了呢?还有DAC那个是32个数据,SD每次至少512字节怎么处理。。。
回复 支持 反对

使用道具 举报

发表于 2016-10-21 17:05:43 | 显示全部楼层
隔壁王小二 发表于 2016-10-21 15:39
也就说调用了两个DMA通道,然后异步的进行,将SD卡读出一定数据,用DMA传到buffer,然后另一个DMA通道传 ...

dac例程里有发送32个数据的例子,定时器每隔一段时间更新一个数据,更新到32个就换新的就行了。

一次能读512字节,那你不会从里边取32个出来处理嘛?
而且用文件系统,根本就没有要求读512字节
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-13 08:02 , Processed in 0.069718 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表