搜索
bottom↓
12
返回列表 发新帖
楼主: wowangru

总结了各种方法stm32 串口接收都太麻烦! 并且不稳定 !

  [复制链接]

出10入12汤圆

 楼主| 发表于 2018-11-6 10:16:10 | 显示全部楼层
亦言567 发表于 2018-11-6 10:00
我的程序也是用你这种方法,感觉很好用啊,都能满足我的需求

但是这个方法会连续进中断,每个字节进一次!!!ARM进中断寄存器多 时间开销也客观的

出330入0汤圆

发表于 2018-11-6 10:50:51 来自手机 | 显示全部楼层
wowangru 发表于 2018-11-6 10:16
但是这个方法会连续进中断,每个字节进一次!!!ARM进中断寄存器多 时间开销也客观的 ...

即便是每字节进一次中断,也让ARM闲的时间足够抽根烟,再喝壶咖啡,刷刷帖子,小睡一会,终于等到了一字节的数据!
stm32我一般收数据用中断,发数据走DMA

出0入8汤圆

发表于 2018-11-6 10:53:38 | 显示全部楼层
可以看一下rtt里面串口接收的方式

出0入0汤圆

发表于 2018-11-11 22:47:03 | 显示全部楼层
弄个大的DMA,保证不超过最大长度,然后定时来判断DMA计数器是否改变了,超过一定时间没变,则认为数据收完了。

出0入0汤圆

发表于 2018-11-12 02:26:53 | 显示全部楼层
本帖最后由 yiminglei_2 于 2018-11-12 02:35 编辑

空闲中断+DMA+FIFO+校验,

在空闲中断服务中计算DMA接收了多少字节数据,把数据推入FIFO中,然后重置DMA接收,置起flag;在其它任务或应用中解析数据,校验就是识别哪些数据是完整一帧。

这样不管一帧数据分成多少次过来,或者几帧紧贴着过来,或者帧与帧之间有错误数据,都能全部解析的。

出0入0汤圆

发表于 2018-11-12 07:45:51 | 显示全部楼层
进来学习一下!

出10入18汤圆

发表于 2018-11-12 07:57:27 来自手机 | 显示全部楼层
不用DMA可以用定时器超时+帧匹配,用DMA可以玩的更高级,是因为st的串口功能太多了,楼主该磨磨刀了

出0入0汤圆

发表于 2018-11-12 08:02:14 来自手机 | 显示全部楼层
没遇到过这种问题,一直很稳定可靠,难道我问题想简单了?

出0入0汤圆

发表于 2018-11-12 09:39:45 | 显示全部楼层
wowangru 发表于 2018-11-5 21:41
对熟悉的人来说确实不难!  上面的回复已经有我最满意的方案!  做到任意长度,任意负荷!同时收发,  且 ...

那是那个方法可以做到?

出0入0汤圆

发表于 2018-11-12 09:53:43 | 显示全部楼层
ilikemcu 发表于 2018-11-5 10:30
我不知道你这100字节的CPU中断开销10%怎么算出来和怎么做出来的。

我一个破51,用115200用足了不停收发 ...

其实我想顶你一下,但是不知道在哪里顶。。。。例子举的挺好,真奇怪楼主怎么敢说出这个结论。。。

出10入12汤圆

 楼主| 发表于 2018-11-12 17:13:20 | 显示全部楼层
抱歉 主题没法修改!!!!!

出0入0汤圆

发表于 2018-11-12 21:47:31 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2018-11-12 22:26:37 | 显示全部楼层
方法4,加定时器超时中断...
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-27 02:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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