你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

hal库的串口接收完成回调函数中如何区分是不是DMA接收完成?

[复制链接]
铁驴不倒 提问时间:2017-3-29 08:59 /
HAL_UART_RxCpltCallback
这个回调函数在串口中断接收完成后会被调用,在DMA接收完成后也会被调用

那么能否在这个回调函数中直接以参数huart中的信息来区分上述两种情况呢?(不考虑其他外部附加处理方式)

(实际使用情况是在rtthread中改用hal库适配原来的serial处理)
收藏 1 评论4 发布时间:2017-3-29 08:59

举报

4个回答
moyanming2013 回答时间:2017-3-29 10:07:52
不太可能针对同一个串口即开中断收发又开DMA收发吧?
铁驴不倒 回答时间:2017-3-29 11:03:33
moyanming2013 发表于 2017-3-29 10:07
不太可能针对同一个串口即开中断收发又开DMA收发吧?

使用和处理回调是分离的 处理的地方要能适配所有使用方式
为什么hal里要把DMA和IT接收完成用同一个函数呢。。。
moyanming2013 回答时间:2017-3-29 11:12:02
铁驴不倒 发表于 2017-3-29 11:03
使用和处理回调是分离的 处理的地方要能适配所有使用方式
为什么hal里要把DMA和IT接收完成用同一个函数 ...

1.同一个串口使用中断和DMA互斥。
2.中断回调函数用同一个不会有问题。
3.如果你想改,那么在中断(和DMA中断)处理函数中修改成自己的一个回调函数即可,这是灵活的。
铁驴不倒 回答时间:2017-3-30 18:17:00
moyanming2013 发表于 2017-3-29 11:12
1.同一个串口使用中断和DMA互斥。
2.中断回调函数用同一个不会有问题。
3.如果你想改,那么在中断(和DMA ...

嗯 看来要增加一个回调函数才行

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版