OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 17733|回复: 22

基于ALIENTEK STM32制作的串口记录器(fatfs文件系统,串口通讯速率在sd卡文件中可调,)开源

[复制链接]

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-8-18
在线时间
4 小时
发表于 2011-8-18 19:39:30 | 显示全部楼层 |阅读模式
基于ALIENTEK STM32制作的串口记录器(fatfs文件系统,串口通讯速率在sd卡文件中可调,)
插入一张格式化好的sd卡。会在卡中自动生成config文件夹和config文件。修改config。txt文件中的波特率即可。记录透明串口数据,测试使用了一个10hz的gps模块,38400速率没有发现记录错误和漏记。
目前使用的是10ms没有触发串口接收中断则开始将缓冲区的数据写入sd卡。希望有更好的办法来检测。。。

usart_sd.rar

1.14 MB, 下载次数: 2265

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2011-2-28
在线时间
8 小时
发表于 2011-11-16 11:43:15 | 显示全部楼层
谢谢,我试试看,收满512B加上长时间无数据就写入SD不是更好。
我会很乐意与你交流的。
回复 支持 反对

使用道具 举报

6

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2011-2-28
在线时间
8 小时
发表于 2011-11-16 14:10:55 | 显示全部楼层
这种记录方式是否存在有缺陷,第一条串口记录会刷新FLASH,据我所知SD是以512B来组织的。如果不经常读修改写那么寿命短暂!  要不要加一个缓存机制,约束条件只有一次达到512B才写入文件。 或者通过命令写人文件。
我会很乐意与你交流的。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-11-16 14:31:34 | 显示全部楼层
加缓存的机制是必要的.
不到512B字节,不要去写SD卡!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-8-18
在线时间
4 小时
 楼主| 发表于 2011-11-16 16:06:46 | 显示全部楼层
很久没来看看了。。。多谢指点。哪位有空给改改再发上来。呵呵
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2011-11-16 22:00:42 | 显示全部楼层
楼主可以做一个串口写卡器,哦之前有过这个想法,但串口发送文件是不中断的,也就是一直发,不管卡有没写完,这里就涉及缓存比较大的问题了。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

6

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2011-2-28
在线时间
8 小时
发表于 2011-11-18 09:03:44 | 显示全部楼层
   我测试了下,我改的是512B的接收缓存满或者发送方回车换行触发写入SD卡,并且将接收到的数据返回到串口显示。在用10MS时间来区分每一帧,感觉有丢失的现象。最后用回车符来区别每一帧,帧超时设定为秒。
   这个附件主要是楼主的杰作,我没有经过他同意就修改了,希望见谅,大家可以参考与完善这个程序。

usart_sd-20111117修改SD卡记录卡.rar

1.18 MB, 下载次数: 2024

我会很乐意与你交流的。
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2011-10-13
在线时间
1 小时
发表于 2012-4-16 20:05:15 | 显示全部楼层
回复【7楼】lcc8559:
---------------------------------
我现在不用什么串口,就是AD测道德数据直接写入SD卡,该怎么加一个缓存机制,约束条件只有一次达到512B才写入文件。
我的程序在这里,您看一下,谢谢!

SD卡存电压数据.rar

1.35 MB, 下载次数: 2829

回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2195
金钱
2195
注册时间
2012-2-8
在线时间
34 小时
发表于 2012-4-16 22:07:37 | 显示全部楼层
回复【8楼】 skyliuhuan :
---------------------------------
楼上似乎是没仔细看过6楼的程序,就直接发问,还想让别人帮你写代码。。。
https://github.com/roxma
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2011-10-13
在线时间
1 小时
发表于 2012-4-18 22:28:44 | 显示全部楼层
回复【9楼】Pony279:
---------------------------------
我也是先写入数组,到512B就将数组写到SD卡,可是SD卡却显示NULL,不知道为什么!
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2011-10-13
在线时间
1 小时
发表于 2012-4-18 22:29:33 | 显示全部楼层
回复【7楼】lcc8559:
---------------------------------
我也是先写入数组,到512B就将数组写到SD卡,可是SD卡却显示NULL,不知道为什么!
回复 支持 反对

使用道具 举报

8

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2011-8-15
在线时间
3 小时
发表于 2012-4-28 21:56:25 | 显示全部楼层
if(res==0) //文件存在返回 0
 { res=f_read(&file, buffer, sizeof(buffer), &br);   //读取config文件中的波特率
       f_close(&file);  //文件存在则关闭文件

    switch(buffer[9]-0x30)
 {case 1:
         baud=4800;
            printf("bps4800","\n");  //换行 ,回显;
             break;
  case 2:
         baud=9600;
           printf("bps960","\n");  //换行 ,回显;
             break;
  case 3:
         baud=14400;
           printf("bps14400","\n");  //换行 ,回显;
             break;

  case 4:
         baud=19200;
           printf("bps19200","\n");  //换行 ,回显;
             break;
  case 5:
         baud=38400;
           printf("bps38400","\n");  //换行 ,回显;
             break;
     default:
           res=1;
           break;
 
        }

以上为附件中部分代码,有两点不明白:
为什么是buffer[9]-0x30,buffer[9]和ox30怎么来的??
求高人指点!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-4-28 22:36:26 | 显示全部楼层
skdljlka
回复 支持 反对

使用道具 举报

19

主题

302

帖子

2

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2011-11-22
在线时间
10 小时
发表于 2012-4-28 22:37:20 | 显示全部楼层
应该是字符转换吧
世界如此美好,好好珍惜每一天吧!
回复 支持 反对

使用道具 举报

19

主题

302

帖子

2

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2011-11-22
在线时间
10 小时
发表于 2012-4-28 22:39:34 | 显示全部楼层
回复【13楼】正点原子:
skdljlka
---------------------------------
这是什么意思?
世界如此美好,好好珍惜每一天吧!
回复 支持 反对

使用道具 举报

8

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2011-8-15
在线时间
3 小时
发表于 2012-4-28 22:45:12 | 显示全部楼层

buffer[9]  就是2,改动那个2就可以修改对应的波特率,之前也是没仔细看程序!
0X30就是0的ascii码(好理解),完毕!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-4-28 22:46:25 | 显示全部楼层
网速像狗屎...

buf[9]是使用者设计用来控制波特率的.
减去0X32是因为'0'=0X30.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2011-8-15
在线时间
3 小时
发表于 2012-4-28 22:50:42 | 显示全部楼层
回复【17楼】正点原子:
---------------------------------
淡定,原子哥!
回复 支持 反对

使用道具 举报

19

主题

302

帖子

2

精华

高级会员

Rank: 4

积分
727
金钱
727
注册时间
2011-11-22
在线时间
10 小时
发表于 2012-4-28 22:53:53 | 显示全部楼层
回复【17楼】正点原子:
网速像狗屎... 
buf[9]是使用者设计用来控制波特率的. 
减去0X32是因为'0'=0X30.
---------------------------------
写错数字了0x32
世界如此美好,好好珍惜每一天吧!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-4-28 23:00:12 | 显示全部楼层
0X32应该是0X30
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2011-8-15
在线时间
3 小时
发表于 2012-4-28 23:00:43 | 显示全部楼层
回复【19楼】dzng11:
---------------------------------
确实!都是那狗屎网速弄得原子哥烦躁了~~~
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1220
金钱
1220
注册时间
2023-6-27
在线时间
97 小时
发表于 2024-10-12 13:17:55 | 显示全部楼层
方便把头文件等打包上来吗?没有相应的头文件,编译不成功。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1220
金钱
1220
注册时间
2023-6-27
在线时间
97 小时
发表于 2024-10-22 22:10:44 | 显示全部楼层
我测试了一下,发现一直都可以新建或者打开Config这个文件,写入也成功,但是第一个SDLog.txt这个文件一直都创建不成功,更加无法写入,我按照config的方式来修改了,还是同样的问题,有没有大神测试过?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 06:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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