找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2646|回复: 7
打印 上一主题 下一主题
收起左侧

STM32单片机串口通信速度过快,数据来不及处理

[复制链接]
跳转到指定楼层
楼主
ID:1008389 发表于 2022-3-26 21:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用stm32连接UHF rfid ,用串口通信, 波特率为57600, 模块通讯速度太快,经常导致串口接收异常,产生ORE,请问该怎么解决呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-3-26 23:29 | 只看该作者
我用主频48MHz的STM32F091同时处理8个115200bps串口数据都没有不够用!

另外再%一下STM32的HAL库,写的跟%%一样,上面这个任务一开始用HAL库做的,最多只能处理3个串口,坑死我了。换成StdPeriph库,马上就舒服了。后来蛋疼用LL库写了一遍,也完全能处理的过来。唯独HAL库简直就是个垃圾,串口中断处理跟进去发现里面居然有3000行代码,随便街上找个%培训半天都写不出HAL库这么制杖的代码。
回复

使用道具 举报

板凳
ID:1008389 发表于 2022-3-27 10:34 | 只看该作者
Hephaestus 发表于 2022-3-26 23:29
我用主频48MHz的STM32F091同时处理8个115200bps串口数据都没有不够用!

另外再%一下STM32的HAL库,写的 ...

我好像就是用HAL库写
回复

使用道具 举报

地板
ID:587810 发表于 2022-3-27 16:58 | 只看该作者
建议自己写代码,如果还是不行就开启DMA传输
回复

使用道具 举报

5#
ID:752974 发表于 2022-3-29 16:17 | 只看该作者
HAL中串口中断接收函数不能用,太繁琐了,最好自己写接收部分函数。另外,不要在中断接收中处理数据。
回复

使用道具 举报

6#
ID:1011864 发表于 2022-3-29 16:39 | 只看该作者
不是速率的问题,
回复

使用道具 举报

7#
ID:1008389 发表于 2022-3-29 22:17 | 只看该作者
munuc_w 发表于 2022-3-29 16:17
HAL中串口中断接收函数不能用,太繁琐了,最好自己写接收部分函数。另外,不要在中断接收中处理数据。

那我在尝试尝试
回复

使用道具 举报

8#
ID:775776 发表于 2022-3-30 14:07 | 只看该作者
用库函数板的 DMA 空闲的时间处理数据 如果单纯的串口中断里处理 出现异常是正常的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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