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当这个用处,大材小用了。。 谁叫我身边就这块板子。
搞不懂你有几个GPIO输出口?有几个LEG?
楼主的2种方法是不等价的!
还不知道LED有多少个
一个GPIO 16个LED不够的话,那就要A B C D 等都用上了。
个人想法很粗糙,需要实践的磨合。
不知道有具体有多少LED没关系,至少可以说说你想达到什么
根据你自己写的程序,猜不出来你要做什么。
自己表达不清,呵呵
简单的描述: 类似控制大楼外面灯泡的亮。 当然我想要的效果是小的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灯的选材。
再次感谢香版的关注。
自己封贴,实践后再顶。
估计你想实现一组LED灯中在不同时刻有若干个不同灯点亮的
比如8个LED灯,有如下效果:
T0:灭 灭 灭 灭 灭 灭 灭 灭 0x00
T1:灭 灭 灭 灭 灭 灭 灭 亮 0x01
T2:灭 灭 灭 灭 灭 灭 亮 亮 0x03
T2:灭 灭 灭 灭 灭 亮 亮 亮 0x07
T3:灭 灭 灭 灭 亮 亮 亮 灭 0x0E
T4:灭 灭 灭 亮 亮 亮 灭 灭 0x1C
.....
这样的话,最方便的就是使用ODR寄存器定时地写入不同的数据。