打印
[STM32F0]

关于stm32f051 uart用DMA接收问题

[复制链接]
4272|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
racinglam|  楼主 | 2015-8-19 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 racinglam 于 2015-8-19 17:22 编辑

我发现用dma接收uart数据的时候,同时打开RXNE中断时,RXNE中断没有触发,但关闭dma,只开RXNE中断可以触发,这是否正常?我主要想用RXNE中断计算接收了多少个数据,实现用dma接收未知长度数据。
沙发
cat_li| | 2015-8-19 17:06 | 只看该作者
没有用DMA接受过,不清楚

使用特权

评论回复
板凳
aundry| | 2015-8-19 17:28 | 只看该作者
用了DMA的时候,就不会进入RXNE中断了

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
racinglam + 3 赞一个!
地板
racinglam|  楼主 | 2015-8-19 17:29 | 只看该作者
aundry 发表于 2015-8-19 17:28
用了DMA的时候,就不会进入RXNE中断了

确定吗,那我只能想其它办法了,谢谢

使用特权

评论回复
5
mmuuss586| | 2015-8-19 19:06 | 只看该作者
没试过呢;
不过你可以用DMA计算接收了多少数据啊;

使用特权

评论回复
6
songchenping| | 2015-8-19 20:19 | 只看该作者
用DMA的时候RXNE就不起作用了。

使用特权

评论回复
7
aundry| | 2015-8-19 20:42 | 只看该作者
其实如果你想统计数据,还不如直接用中断接收,自己存放在ram,主循环再处理帧
或许根据dma读取的时候统计数量

使用特权

评论回复
8
racinglam|  楼主 | 2015-8-20 09:02 | 只看该作者
aundry 发表于 2015-8-19 20:42
其实如果你想统计数据,还不如直接用中断接收,自己存放在ram,主循环再处理帧
或许根据dma读取的时候统计 ...

本来想用dma提高效率,因为中断接收接一字节都要中断一次,如果stm32的串口有FIFO就好了,看来还是用中断接收算了。

使用特权

评论回复
9
aundry| | 2015-8-20 10:15 | 只看该作者
racinglam 发表于 2015-8-20 09:02
本来想用dma提高效率,因为中断接收接一字节都要中断一次,如果stm32的串口有FIFO就好了,看来还是用中断 ...

其实单单中断进去接收数据,然后直接放在自己模拟的FIFO
在main中循环读FIFO就可以了,这样也耗不了多少时间,而且FIFO还可以根据资源来设置
记得ST的,STR7的串口是带FIFO的,没记错貌似是32Byte吧
像STM32这种高性价比的,都是内部共用很多资源,最不爽就是USB与CAN混到一块去

使用特权

评论回复
10
racinglam|  楼主 | 2015-8-20 17:56 | 只看该作者
aundry 发表于 2015-8-20 10:15
其实单单中断进去接收数据,然后直接放在自己模拟的FIFO
在main中循环读FIFO就可以了,这样也耗不了多少 ...

USB和CAN混一起?这个我没用过,就不发表评论了,不过研究了一下stm32cube的uart驱动,感觉写得不怎么好用!

使用特权

评论回复
11
racinglam|  楼主 | 2015-8-20 18:01 | 只看该作者
怎么结贴,一直显示分配分数不对

使用特权

评论回复
12
天灵灵地灵灵| | 2015-8-21 11:16 | 只看该作者
DMA搬移的时候是不是可以统计?

使用特权

评论回复
13
可可球| | 2015-8-27 16:04 | 只看该作者
用DMA的时候,不会进入RXNE中断,是这样吗

使用特权

评论回复
14
尤彼卡| | 2015-8-27 16:19 | 只看该作者
模拟的FIFO行吗

使用特权

评论回复
15
734774645| | 2015-8-28 09:12 | 只看该作者
论坛处处有高人啊,看了大家的回复,感觉自己 太笨了。

使用特权

评论回复
16
598330983| | 2015-8-28 12:49 | 只看该作者
这个uart,如何跟DMA合作工作,还是需要好好研究一下的。

使用特权

评论回复
17
mintspring| | 2015-8-29 16:24 | 只看该作者
串口到DMA,不知道楼主要把数据放哪儿去

使用特权

评论回复
18
玛尼玛尼哄| | 2015-8-29 16:42 | 只看该作者
我做过通过串口和DMA把数据写入到SD卡。

使用特权

评论回复
19
racinglam|  楼主 | 2015-8-31 11:56 | 只看该作者
mintspring 发表于 2015-8-29 16:24
串口到DMA,不知道楼主要把数据放哪儿去

放到环形buffer里

使用特权

评论回复
20
mintspring| | 2015-9-4 22:03 | 只看该作者
原来Buffer是环形的。

使用特权

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

本版积分规则

9

主题

89

帖子

0

粉丝