基于LL库串口+ringbuff无限拓展驱动
这个驱动跟硬汉的fifo是差不多的,我现在写的这个可以是基于ringbuff,并且可以无限拓展uart,适合一切有串口中断的单片机,目前在msp432、cc2540、st cpu都有使用。好东西就要分享一下,有中断就能用,不要跟我扯什么dma,idle哈,玩32别太魔怔。非常感谢楼主分享。 可以,在那都可以看到你{:8:}{{:8:} wl_l 发表于 2020-4-10 15:32
可以,在那都可以看到你{
:lol 能不能介绍一下ringbuff的优势? 在哪种应用中比较合适? caicaptain2 发表于 2020-4-10 16:37
能不能介绍一下ringbuff的优势? 在哪种应用中比较合适?
频繁读写操作比较实用,避免普通fifo读的时候要索引要向前移位 LL库啊?? 简单看一下,不是很明白,感觉像是弄了一个镜像,溢出的时候交给镜像存储 感谢分享。 感谢分享,下载了 感谢楼主分享! 标准库可以用不了:( mculover666 发表于 2020-5-10 21:10
感谢楼主分享!
原来你也在!! 本帖最后由 hpdell 于 2020-5-15 17:27 编辑
avr 系列的单片机 适用这个 环形缓冲区 接收基本搞好了,现在就差 发送了哟 可能是我不能完全理解,感觉跟硬汉的没区别,就是多了一个xxx_mirror来检测读写指针相同时缓冲是空还是满 感谢 分享 谢谢分享 ....感谢楼主分享 楼主这个ringbuff挺好的,git上有吗?之前用过,现在用翻了好久才找到 这个和RTT里的ringbuffer是很类似的的,但是又一种场景无法使用,就是串口每次接收的数据都是不定长度的,没法使用,这个必须每次都push和pop固定长度的数据才好使。 沉醉东风 发表于 2021-6-1 15:11
这个和RTT里的ringbuffer是很类似的的,但是又一种场景无法使用,就是串口每次接收的数据都是不定长度的, ...
不需要定长的,接收中断中将数据存入ringbuff大循环里面取出ringbuff数据进行解析 不定长的话,取的时候,你怎么知道该取多少长度的字节?如何来分包。比如我第一次push 20个字节,第二次push了28个字节,ringbuffer里有了48个字节,属于两包数据,在取的时候怎么知道我第一包的长度是20呢? 沉醉东风 发表于 2021-6-1 16:21
不定长的话,取的时候,你怎么知道该取多少长度的字节?如何来分包。比如我第一次push 20个字节,第二次pus ...
我的这个满足你的需求,同时支持帧数据和流数据,帧数据就是你说的这种情况。https://gitee.com/wei513723/ring_fifo 1598025967 发表于 2021-6-1 20:22
我的这个满足你的需求,同时支持帧数据和流数据,帧数据就是你说的这种情况。https://gitee.com/wei51372 ...
这个可以做一个peek功能的吗,就是取数据的时候,读指针不移动 huyang27 发表于 2021-6-5 11:47
这个可以做一个peek功能的吗,就是取数据的时候,读指针不移动
peek功能很简单,你只需要把那个读fifo接口的head指针移动那行代码删除就行了,对于我来说没啥用,所以就没加,我喜欢少量简洁的接口。 好东西,收藏了:lol 感谢分享!!
感谢楼主分享
感谢楼主分享!{:32:}{:32:}
页:
[1]