OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5331|回复: 8

关于DMA输出到GPIO。5,6,7,8,10输出不正常。

[复制链接]

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-5-2
在线时间
14 小时
发表于 2014-8-10 16:39:39 | 显示全部楼层 |阅读模式
5金钱
最近在搞一个WS2812B的LED灯,里面有一块内置芯片用于自己产生PWM。
单片机这边要做的事就是按一定的时序发送数据进一个DIN口。
我采用的是DMA输出到GPIO->ODR。
已经调试成功。
但后来发现程序里面有点问题,我把内存里面的数组通过DMA写进GPIO里,以16bit每个传输,按道理应该可以同时操控16个GPIO口,我接的是PB口,
也就是说我将一个十六bit的数组通过DMA写到GPIO来控制16个IO口的高低电平,从而控制16列灯。
但发现PB5,PB6,PB7,PB8,PB10输出完全不正常,实际上根本没有按照数据里面的数传递进GPIO。
而其他引脚则完全正常。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
我加了这几句是为了让JTAG,SWD引脚当普通IO口用。
我看了手册PB5,PB6,PB7,PB8,PB10默认功能就是普通的IO口,按道理来说跟复用引脚应该没有多大关系。
那为什么数组里面的数没有通过DMA在GPIO口上翻转呢。
求原子哥和各路大神指点一下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-10 22:40:20 | 显示全部楼层
直接程序写GPIOB->ODR,测试下,看看这几个IO受控不受控.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-5-2
在线时间
14 小时
 楼主| 发表于 2014-8-11 01:25:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
单独翻转IO是可以的。但是一到DMA传输到GPIO就不行了。
而且在DEBUG模式里,GPIO的模式和翻转速度都是一样的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-11 18:53:08 | 显示全部楼层
回复【3楼】李马克:
---------------------------------
那不应该,GPIO DMA我也用过,挺好使的啊。
你看看是不是传送的数据有问题吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-5-2
在线时间
14 小时
 楼主| 发表于 2014-8-12 17:34:08 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我再慢慢调试下。谢谢
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-5-2
在线时间
14 小时
 楼主| 发表于 2014-8-13 16:45:38 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
之前是在F103C8T6的板子上试,就有PB5,PB6,PB7,PB8,PB10不行。
现在换了F103VET6,只有PB6和PB11不行了。程序丝毫没改动,只是换了下芯片而已。
我已经对这世界麻木了-。-
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-13 23:18:17 | 显示全部楼层
回复【6楼】李马克:
---------------------------------
呵呵,说明是你电路可能有问题啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-5-2
在线时间
14 小时
 楼主| 发表于 2014-8-14 22:53:59 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
但愿如此。已打算自己画板。
回复

使用道具 举报

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2015-8-27
在线时间
22 小时
发表于 2015-10-10 16:31:18 | 显示全部楼层
回复【8楼】李马克:
---------------------------------
我现在遇到的是PB10和PB11不能用,没有任何反应,其他的都没有问题,好郁闷啊,这两个脚是模拟SCCB接口的啊!现在直接导致摄像头不能用啊!哎
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 05:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表