硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4724|回复: 28
收起左侧

基于LL库串口+ringbuff无限拓展驱动

  [复制链接]

17

主题

101

回帖

152

积分

初级会员

积分
152
发表于 2020-4-10 13:42:57 | 显示全部楼层 |阅读模式
这个驱动跟硬汉的fifo是差不多的,我现在写的这个可以是基于ringbuff,并且可以无限拓展uart,适合一切有串口中断的单片机,目前在msp432、cc2540、st cpu都有使用。好东西就要分享一下,有中断就能用,不要跟我扯什么dma,idle哈,玩32别太魔怔。

ringbuff.c

7.47 KB, 下载次数: 434

ringbuff.h

2.81 KB, 下载次数: 219

uart.c

8.13 KB, 下载次数: 270

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2020-4-10 13:55:31 | 显示全部楼层
非常感谢楼主分享。
回复

使用道具 举报

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2020-4-10 15:32:29 | 显示全部楼层
可以,在那都可以看到你{
回复

使用道具 举报

17

主题

101

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2020-4-10 16:01:21 | 显示全部楼层
wl_l 发表于 2020-4-10 15:32
可以,在那都可以看到你{

回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2020-4-10 16:37:05 | 显示全部楼层
能不能介绍一下ringbuff的优势? 在哪种应用中比较合适?
回复

使用道具 举报

17

主题

101

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2020-4-10 17:42:29 | 显示全部楼层
caicaptain2 发表于 2020-4-10 16:37
能不能介绍一下ringbuff的优势? 在哪种应用中比较合适?

频繁读写操作比较实用,避免普通fifo读的时候要索引要向前移位
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2020-4-10 18:12:36 | 显示全部楼层
LL库啊??
回复

使用道具 举报

1

主题

369

回帖

372

积分

高级会员

积分
372
发表于 2020-4-10 18:57:11 | 显示全部楼层
简单看一下,不是很明白,感觉像是弄了一个镜像,溢出的时候交给镜像存储
回复

使用道具 举报

22

主题

250

回帖

321

积分

高级会员

积分
321
发表于 2020-4-10 21:21:20 | 显示全部楼层
感谢分享。
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2020-4-30 18:10:31 | 显示全部楼层
感谢分享,下载了
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-5-10 21:10:09 | 显示全部楼层
感谢楼主分享!
回复

使用道具 举报

1

主题

103

回帖

106

积分

初级会员

积分
106
发表于 2020-5-11 11:24:58 | 显示全部楼层
标准库可以用不了
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2020-5-11 13:46:24 | 显示全部楼层

原来你也在!!
回复

使用道具 举报

609

主题

3050

回帖

4897

积分

至尊会员

积分
4897
发表于 2020-5-15 14:50:38 | 显示全部楼层
本帖最后由 hpdell 于 2020-5-15 17:27 编辑

avr 系列的单片机 适用这个 环形缓冲区 接收基本搞好了,现在就差 发送了哟
回复

使用道具 举报

3

主题

59

回帖

68

积分

初级会员

积分
68
发表于 2020-5-17 11:13:08 | 显示全部楼层
可能是我不能完全理解,感觉跟硬汉的没区别,就是多了一个xxx_mirror来检测读写指针相同时缓冲是空还是满
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2021-1-31 19:18:57 | 显示全部楼层
感谢 分享      
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2021-2-3 22:51:54 | 显示全部楼层
谢谢分享
回复

使用道具 举报

27

主题

91

回帖

172

积分

初级会员

积分
172
发表于 2021-2-17 21:17:37 | 显示全部楼层
....感谢楼主分享
回复

使用道具 举报

5

主题

132

回帖

147

积分

初级会员

积分
147
发表于 2021-5-31 22:57:18 | 显示全部楼层
楼主这个ringbuff挺好的,git上有吗?之前用过,现在用翻了好久才找到
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2021-6-1 15:11:17 | 显示全部楼层
这个和RTT里的ringbuffer是很类似的的,但是又一种场景无法使用,就是串口每次接收的数据都是不定长度的,没法使用,这个必须每次都push和pop固定长度的数据才好使。
回复

使用道具 举报

5

主题

132

回帖

147

积分

初级会员

积分
147
发表于 2021-6-1 15:55:33 | 显示全部楼层
沉醉东风 发表于 2021-6-1 15:11
这个和RTT里的ringbuffer是很类似的的,但是又一种场景无法使用,就是串口每次接收的数据都是不定长度的, ...

不需要定长的,接收中断中将数据存入ringbuff  大循环里面取出ringbuff数据进行解析
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2021-6-1 16:21:19 | 显示全部楼层
不定长的话,取的时候,你怎么知道该取多少长度的字节?如何来分包。比如我第一次push 20个字节,第二次push了28个字节,ringbuffer里有了48个字节,属于两包数据,在取的时候怎么知道我第一包的长度是20呢?
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2021-6-1 20:22:13 | 显示全部楼层
沉醉东风 发表于 2021-6-1 16:21
不定长的话,取的时候,你怎么知道该取多少长度的字节?如何来分包。比如我第一次push 20个字节,第二次pus ...

我的这个满足你的需求,同时支持帧数据和流数据,帧数据就是你说的这种情况。https://gitee.com/wei513723/ring_fifo
回复

使用道具 举报

1

主题

22

回帖

25

积分

新手上路

积分
25
发表于 2021-6-5 11:47:31 | 显示全部楼层
1598025967 发表于 2021-6-1 20:22
我的这个满足你的需求,同时支持帧数据和流数据,帧数据就是你说的这种情况。https://gitee.com/wei51372 ...

这个可以做一个peek功能的吗,就是取数据的时候,读指针不移动
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2021-6-5 20:25:28 | 显示全部楼层
huyang27 发表于 2021-6-5 11:47
这个可以做一个peek功能的吗,就是取数据的时候,读指针不移动

peek功能很简单,你只需要把那个读fifo接口的head指针移动那行代码删除就行了,对于我来说没啥用,所以就没加,我喜欢少量简洁的接口。
回复

使用道具 举报

1

主题

23

回帖

26

积分

新手上路

积分
26
发表于 2021-9-14 13:33:14 | 显示全部楼层
好东西,收藏了
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-7-26 11:20:07 | 显示全部楼层
感谢分享!!
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-7-29 23:25:03 | 显示全部楼层

感谢楼主分享
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-7-29 23:26:18 | 显示全部楼层

感谢楼主分享!
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 06:10 , Processed in 0.410706 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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