初晴sama 发表于 2020-4-10 13:42:57

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

这个驱动跟硬汉的fifo是差不多的,我现在写的这个可以是基于ringbuff,并且可以无限拓展uart,适合一切有串口中断的单片机,目前在msp432、cc2540、st cpu都有使用。好东西就要分享一下,有中断就能用,不要跟我扯什么dma,idle哈,玩32别太魔怔。

eric2013 发表于 2020-4-10 13:55:31

非常感谢楼主分享。

wl_l 发表于 2020-4-10 15:32:29

可以,在那都可以看到你{:8:}{{:8:}

初晴sama 发表于 2020-4-10 16:01:21

wl_l 发表于 2020-4-10 15:32
可以,在那都可以看到你{

:lol

caicaptain2 发表于 2020-4-10 16:37:05

能不能介绍一下ringbuff的优势? 在哪种应用中比较合适?

初晴sama 发表于 2020-4-10 17:42:29

caicaptain2 发表于 2020-4-10 16:37
能不能介绍一下ringbuff的优势? 在哪种应用中比较合适?

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

wdliming 发表于 2020-4-10 18:12:36

LL库啊??

挖东衣宇 发表于 2020-4-10 18:57:11

简单看一下,不是很明白,感觉像是弄了一个镜像,溢出的时候交给镜像存储

wujialing3000 发表于 2020-4-10 21:21:20

感谢分享。

lrzxc 发表于 2020-4-30 18:10:31

感谢分享,下载了

mculover666 发表于 2020-5-10 21:10:09

感谢楼主分享!

西点钟灵毓秀 发表于 2020-5-11 11:24:58

标准库可以用不了:(

wdliming 发表于 2020-5-11 13:46:24

mculover666 发表于 2020-5-10 21:10
感谢楼主分享!

原来你也在!!

hpdell 发表于 2020-5-15 14:50:38

本帖最后由 hpdell 于 2020-5-15 17:27 编辑

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

ruboss 发表于 2020-5-17 11:13:08

可能是我不能完全理解,感觉跟硬汉的没区别,就是多了一个xxx_mirror来检测读写指针相同时缓冲是空还是满

rim_go 发表于 2021-1-31 19:18:57

感谢 分享      

wdliming 发表于 2021-2-3 22:51:54

谢谢分享

borrow1988 发表于 2021-2-17 21:17:37

....感谢楼主分享

无关风月 发表于 2021-5-31 22:57:18

楼主这个ringbuff挺好的,git上有吗?之前用过,现在用翻了好久才找到

沉醉东风 发表于 2021-6-1 15:11:17

这个和RTT里的ringbuffer是很类似的的,但是又一种场景无法使用,就是串口每次接收的数据都是不定长度的,没法使用,这个必须每次都push和pop固定长度的数据才好使。

无关风月 发表于 2021-6-1 15:55:33

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

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

沉醉东风 发表于 2021-6-1 16:21:19

不定长的话,取的时候,你怎么知道该取多少长度的字节?如何来分包。比如我第一次push 20个字节,第二次push了28个字节,ringbuffer里有了48个字节,属于两包数据,在取的时候怎么知道我第一包的长度是20呢?

1598025967 发表于 2021-6-1 20:22:13

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

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

huyang27 发表于 2021-6-5 11:47:31

1598025967 发表于 2021-6-1 20:22
我的这个满足你的需求,同时支持帧数据和流数据,帧数据就是你说的这种情况。https://gitee.com/wei51372 ...

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

1598025967 发表于 2021-6-5 20:25:28

huyang27 发表于 2021-6-5 11:47
这个可以做一个peek功能的吗,就是取数据的时候,读指针不移动

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

chenjiawei 发表于 2021-9-14 13:33:14

好东西,收藏了:lol

shim520 发表于 2022-7-26 11:20:07

感谢分享!!

klay 发表于 2022-7-29 23:25:03


感谢楼主分享

klay 发表于 2022-7-29 23:26:18


感谢楼主分享!{:32:}{:32:}
页: [1]
查看完整版本: 基于LL库串口+ringbuff无限拓展驱动