[STM32F0]

HAL_UART_RxCpltCallback函数

[复制链接]
6404|21
手机看帖
扫描二维码
随时随地手机跟帖
stly|  楼主 | 2019-2-21 18:25 | 显示全部楼层 |阅读模式
在HAL_UART_RxCpltCallback函数中接收数据,每次pc发来5个字符,我只能接到钱两个?一直这样发,每次也是接到前两个
bqyj| | 2019-2-21 18:29 | 显示全部楼层
我设置的是每次接收1个字节

使用特权

评论回复
wenfen| | 2019-2-21 18:32 | 显示全部楼层
你不会一次多接收几个?

使用特权

评论回复
zhuhuis| | 2019-2-21 18:36 | 显示全部楼层
你接收完了,赶紧收下一个....别拖着...

使用特权

评论回复
stly|  楼主 | 2019-2-21 18:38 | 显示全部楼层
我也不知道一次会来几个数据,pc发的5个字符是测试用的,实际传输可能一次来10几个或者几个均有可能,所以我只能一个一个的收,然后自己组包判断处理,

使用特权

评论回复
tian111| | 2019-2-21 18:41 | 显示全部楼层
收一个,保存在缓冲区,赶紧提交下一个接收

你可以提交接收 n 多个.但是每接收到一个来一个中断.方法应该很多

使用特权

评论回复
songqian17| | 2019-2-21 18:44 | 显示全部楼层
HAL 库 原始 设计 是 要 接收 已知长度 的数据。

当然 有人 改为 接收 一个字节 就 中断一次,

严重牺牲 CPU 的 效率 => HAL 库的 弱点。

使用特权

评论回复
stly|  楼主 | 2019-2-21 18:47 | 显示全部楼层
还是没有解决问题的招

使用特权

评论回复
tian111| | 2019-2-21 18:51 | 显示全部楼层
USART+DMA,使用串口空闲中断来判断帧

使用特权

评论回复
chenho| | 2019-2-21 18:54 | 显示全部楼层
HAL强调的是通用性,但牺牲啦cpu效率,做啦很多无用的代码,建议你根据需求精简代码,另外就你提的问题,需要跟踪看看HAL的代码,要花时间呀

使用特权

评论回复
zwll| | 2019-2-21 18:59 | 显示全部楼层
重写中断函数

使用特权

评论回复
chuxh| | 2019-2-21 19:03 | 显示全部楼层
DMA循环接收。接收是接收,解码是解码,两者分开就行了。或者用空闲帧中断同步解码。

使用特权

评论回复
juventus9554| | 2019-2-21 19:07 | 显示全部楼层
那是你设计的接收逻辑不合理,用DMA循环模式接收,使用__HAL_DMA_GET_COUNTER()来获取已经接收的数量

使用特权

评论回复
llljh| | 2019-2-21 19:10 | 显示全部楼层

用空闲帧中断同步解码

使用特权

评论回复
dingy| | 2019-2-21 19:14 | 显示全部楼层
需要跟踪看看HAL的代码

使用特权

评论回复
pengf| | 2019-2-21 19:17 | 显示全部楼层

接收一个,保存在缓冲区,迅速提交,接收下一个

使用特权

评论回复
观海| | 2019-3-7 09:58 | 显示全部楼层
把速度降下来试试看

使用特权

评论回复
guanjiaer| | 2019-3-7 10:04 | 显示全部楼层
你是不是在中断函数里边处理了很多东西啊

使用特权

评论回复
heimaojingzhang| | 2019-3-7 10:16 | 显示全部楼层
中断处理函数有问题

使用特权

评论回复
keaibukelian| | 2019-3-7 10:25 | 显示全部楼层
楼主贴上代码瞅瞅

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝