打印

STM32 DMA输出到GPIO问题

[复制链接]
4289|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zousong|  楼主 | 2012-8-21 13:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位:
   (1)STM32 内存8Bit的数据,可以通过DMA发送到GPIOB的高4位吗?(8Bit数据仅输出高4位,GPIO其余引脚状态不可改变)如何设置?
   (2)DMA发送数据到GPIOB,刷新率要达到4M,能否实现?
沙发
IJK| | 2012-8-21 16:18 | 只看该作者
印象里无法实现【或者很不好实现】,因为STM32的DMA无法支持bit banding

使用特权

评论回复
板凳
airwill| | 2012-8-21 17:43 | 只看该作者
https://bbs.21ic.com/icview-368199-1-1.html
就象上面一帖里所说, 直接是不行了. 你可以先把数据变换一下, 再送给 DMA 的缓冲区哪.

使用特权

评论回复
地板
airwill| | 2012-8-21 17:50 | 只看该作者
将 8 位数据变换成32位
u8 var;
u32 dat = (var& 0xF0) +(~var &0xF0)*65536;
将这个值通过 DMA  送 BSRR.

使用特权

评论回复
5
phantomgz| | 2012-9-26 21:15 | 只看该作者
试了一下, 用 DMA 的 M2M 模式, 直接访问 BRSS, 16~32是复位, 0~15是置位, 刚刚好

使用特权

评论回复
6
phantomgz| | 2012-9-26 21:18 | 只看该作者
另外, 我是用103VE, DMA的极限应该在7M左右,

使用特权

评论回复
7
keithyx| | 2015-5-30 20:28 | 只看该作者
phantomgz 发表于 2012-9-26 21:18
另外, 我是用103VE, DMA的极限应该在7M左右,

请问你的 dma传数据到GPIO 弄好没 我也在研究这个

使用特权

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

本版积分规则

9

主题

15

帖子

1

粉丝