[STM32F0] 请教一个关于HAL_UART_RxCpltCallback函数的问题

[复制链接]
12273|20
 楼主| damifan 发表于 2017-2-27 15:41 | 显示全部楼层 |阅读模式
我在HAL_UART_RxCpltCallback函数中接收数据,每次pc发来5个字符,我只能接到钱两个?一直这样发,每次也是接到前两个,求解,谢谢
 楼主| damifan 发表于 2017-2-27 15:44 | 显示全部楼层
我设置的是每次接收1个字节
 楼主| damifan 发表于 2017-2-27 16:13 | 显示全部楼层
有人知道能帮一下不?
 楼主| damifan 发表于 2017-2-27 16:46 | 显示全部楼层
 楼主| damifan 发表于 2017-2-27 17:14 | 显示全部楼层
不要沉
icecut 发表于 2017-2-27 17:45 | 显示全部楼层
你不会一次多接收几个?
你接收完了,赶紧收下一个....别拖着...
 楼主| damifan 发表于 2017-2-27 17:53 | 显示全部楼层
感谢大神的回复,问题是我也不知道一次会来几个数据,pc发的5个字符是测试用的,实际传输可能一次来10几个或者几个均有可能,所以我只能一个一个的收,然后自己组包判断处理,大神一般对这问题咋解决
 楼主| damifan 发表于 2017-2-27 17:53 | 显示全部楼层
icecut 发表于 2017-2-27 17:45
你不会一次多接收几个?
你接收完了,赶紧收下一个....别拖着...

感谢大神的回复,问题是我也不知道一次会来几个数据,pc发的5个字符是测试用的,实际传输可能一次来10几个或者几个均有可能,所以我只能一个一个的收,然后自己组包判断处理,大神一般对这问题咋解决
icecut 发表于 2017-2-27 17:56 | 显示全部楼层
本帖最后由 icecut 于 2017-2-27 17:58 编辑
damifan 发表于 2017-2-27 17:53
感谢大神的回复,问题是我也不知道一次会来几个数据,pc发的5个字符是测试用的,实际传输可能一次来10几 ...

收一个,保存在缓冲区,赶紧提交下一个接收

你可以提交接收 n 多个.但是每接收到一个来一个中断.方法应该很多
 楼主| damifan 发表于 2017-2-27 22:07 | 显示全部楼层
还是没有解决问题的招
yklstudent 发表于 2017-2-27 23:12 | 显示全部楼层
USART+DMA,使用串口空闲中断来判断帧
renxiaolin 发表于 2017-2-28 09:03 | 显示全部楼层
这个问题不那么简单
renxiaolin 发表于 2017-2-28 09:05 | 显示全部楼层
HAL强调的是通用性,但牺牲啦cpu效率,做啦很多无用的代码,建议你根据需求精简代码,另外就你提的问题,需要跟踪看看HAL的代码,要花时间呀
 楼主| damifan 发表于 2017-2-28 15:01 | 显示全部楼层
这个问题在我研究啦HAL的代码后,决定自己重写中断函数,现在已经搞定,谢谢大家
mochou 发表于 2017-10-10 14:16 | 显示全部楼层
damifan 发表于 2017-2-28 15:01
这个问题在我研究啦HAL的代码后,决定自己重写中断函数,现在已经搞定,谢谢大家 ...

你好,把你的USART2 发送接收程序共享吧,我调试的用HAL库感觉USART+DMA一次只能接收一字节的数据,找不哪里有问题,
mochou 发表于 2017-10-10 14:18 | 显示全部楼层
damifan 发表于 2017-2-28 15:01
这个问题在我研究啦HAL的代码后,决定自己重写中断函数,现在已经搞定,谢谢大家 ...

你好,把你的USART2 发送接收程序共享吧,我调试的用HAL库感觉USART+DMA一次只能接收一字节的数据,找不哪里有问题,
chen033481 发表于 2017-10-17 14:56 | 显示全部楼层
DMA循环接收。接收是接收,解码是解码,两者分开就行了。或者用空闲帧中断同步解码。
sonicll 发表于 2017-10-17 15:34 | 显示全部楼层
caosix 发表于 2017-2-27 21:38
HAL 库 原始 设计 是 要 接收 已知长度 的数据。

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

那是你设计的接收逻辑不合理,用DMA循环模式接收,使用__HAL_DMA_GET_COUNTER()来获取已经接收的数量
Erichk 发表于 2017-10-19 18:37 | 显示全部楼层
用空闲帧中断同步解码
Rollo 发表于 2017-10-20 10:48 | 显示全部楼层
需要跟踪看看HAL的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

79

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部