串口接收20K的文件存到sd卡里面

2019-10-11 13:49发布

各位求助,我现在需要利用32串口接收串口调试助手发送的20K左右的txt文档,文档内容是01这样的二进制,接收到之后存到SD卡里面,求教有什么比较好的方案吗?
我想了好几种方案
1、进入接收中断直接就存进SD卡
2、利用DMA方式存
3、定义一个超大的数组,把接收到的数据直接存到数组里面,之后再存到SD中

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-10-11 17:44
1,txt文件是存储的ASCII编码的,不是你说的01二进制。你是以ascii的“01”这样存储而已。
2,串口接收,建议用双缓存,以1K为单位,接收到1K字节,就写SD卡,然后存储到另外一个buf,继续接收,交替使用。
他说他不在
2楼-- · 2019-10-11 23:35
用外部SRAM?或者像IAP、YMODE之类的协议传吧
3楼-- · 2019-10-12 04:04
我的意思是那个txt文档里面的内容是0101这样的数字,还有就是串口调试助手发送文件时,是不是只把里面的数据以ascii码的形式发出去,而没有发送文件名字和文件的大小,不知道我的理解对不对,求原子哥指点
4楼-- · 2019-10-12 04:42
还有就是双缓存,“接收到1K字节,就写SD卡,然后存储到另外一个buf”这里接收到1K字节以后写到SD卡,为什么再将接收到的数据存到另一个数组里呢,直接存到原来的数组不行吗?
5楼-- · 2019-10-12 09:59
 精彩回答 2  元偷偷看……
他说他不在
6楼-- · 2019-10-12 13:04
鸢 发表于 2017-3-22 20:27
还有就是双缓存,“接收到1K字节,就写SD卡,然后存储到另外一个buf”这里接收到1K字节以后写到SD卡,为什 ...

DMA多缓冲机制

一周热门 更多>