[STM32F1] 关于stm32f103串口的DMA发送

[复制链接]
1633|3
 楼主| kingtut2008 发表于 2014-5-14 15:59 | 显示全部楼层 |阅读模式
如题,stm32的串口DMA发送,看了手册DMA有两种方式,但我理想的需求是,缓冲区有数据后,自动发送,发完后停止,填充数据后再次自动发送。可目前使用的常规模式,每次缓冲区数据发送完DMA就停了,再次填充缓冲区后需要把DMA disable,再enable。想问下有没有那种,一往缓冲区写数据就发送,就像给LCD映射一块内存后,只要操作内存就可以。
icecut 发表于 2014-5-14 17:16 | 显示全部楼层
你要这么想,你写内存,会触发dma,这件事硬件怎么实现???

软件准备数据,启动dma,dma传输完成,中断,如有数据,重启传输...如无数据,停止.释放dma
以此循环....

至于lcd是定时刷新,如果这样发送,你会收到很多重复数据,而lcd是不在乎这种数据的.
diweo 发表于 2014-5-14 18:16 | 显示全部楼层
写入USAR_DR就会发送数据,是因为它是固定的那么个寄存器,可以有专门的附加电路来监测是否有对它的写操作。DMA的缓冲区是内存中的任意区域,硬件该怎么监测?
再说,Disable再Enable又不麻烦,必要时还可以结合中断。
 楼主| kingtut2008 发表于 2014-5-14 22:03 | 显示全部楼层
二位说得有理。
我该再深入思考下的。
想不到回复这么快,:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

0

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