打印
[应用相关]

连续依次输出GPIO口用什么方法好?

[复制链接]
2283|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
johnnyqyun|  楼主 | 2008-10-9 13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GPIOC->ODR?
每一次移位?
GPIOC->ODR =m; 
delay(10);
m=m>>1;



还是直接 寄存器操作?
类似

      /* Toggle JTDO pin */
      GPIO_WriteBit(GPIOB, GPIO_Pin_3, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_3)));
      /* Insert delay */
      Delay(0x5FFFF);

一行行 打下去。

主要为什么要一个个点亮GPIO的原因,准备接 LED灯泡,然后像 最近 的 美剧
霹雳游侠 车头一样。。。。

把STM32当这个用处,大材小用了。。 谁叫我身边就这块板子。
沙发
香水城| | 2008-10-9 13:30 | 只看该作者

搞不懂你有几个GPIO输出口?有几个LEG?

楼主的2种方法是不等价的!

使用特权

评论回复
板凳
johnnyqyun|  楼主 | 2008-10-10 00:04 | 只看该作者

还不知道LED有多少个

一个GPIO 16个LED不够的话,那就要A B C D 等都用上了。

个人想法很粗糙,需要实践的磨合。

使用特权

评论回复
地板
香水城| | 2008-10-10 08:53 | 只看该作者

不知道有具体有多少LED没关系,至少可以说说你想达到什么

根据你自己写的程序,猜不出来你要做什么。

使用特权

评论回复
5
johnnyqyun|  楼主 | 2008-10-10 09:09 | 只看该作者

自己表达不清,呵呵

简单的描述: 类似控制大楼外面灯泡的亮。 当然我想要的效果是小的LED灯。 

板上的GPIO流水灯实验这个一直有看,还是比较了解。现在是运用时候需要实践,想法有点粗糙。

上面两个程序分别是两个GPIO的实验。
第一个是m,定义诸如0X8000,然后每次移位,GPIOC->ODR =m; 输出。


第二段程序,是KEIL里STM实验包的程序。贴错了,不好意思香版。

      GPIO_WriteBit(GPIOA, GPIO_Pin_13, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_13)));
      /* Insert delay */
      Delay(0x5FFFF);

      /* Toggle JTCK/SWCLK pin */
      GPIO_WriteBit(GPIOA, GPIO_Pin_14, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_14)));
      /* Insert delay */
      Delay(0x5FFFF);

主要的效果吗,一排红色LED灯一个个的闪过熄灭,但要做出有,“有彗尾,拖尾效果,”的效果,就是不知道是程序上要努力还是LED灯的选材。

再次感谢香版的关注。
自己封贴,实践后再顶。

使用特权

评论回复
6
香水城| | 2008-10-10 10:49 | 只看该作者

估计你想实现一组LED灯中在不同时刻有若干个不同灯点亮的

比如8个LED灯,有如下效果:

T0:灭 灭 灭 灭 灭 灭 灭 灭 0x00
T1:灭 灭 灭 灭 灭 灭 灭 亮 0x01
T2:灭 灭 灭 灭 灭 灭 亮 亮 0x03
T2:灭 灭 灭 灭 灭 亮 亮 亮 0x07
T3:灭 灭 灭 灭 亮 亮 亮 灭 0x0E
T4:灭 灭 灭 亮 亮 亮 灭 灭 0x1C
.....

这样的话,最方便的就是使用ODR寄存器定时地写入不同的数据。

使用特权

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

本版积分规则

13

主题

115

帖子

1

粉丝