新手求助各位师傅!关于STM32通过按键控制流水灯

2019-10-15 22:41发布

各位大咖师傅们,最近做了一个实验,是通过4个按键控制8个LED灯,这四个按键的作用分别是正流水,反流水,从中间向两边扩散,还有一个是按键控制整体的亮灭。
一开始不知道究竟是怎么个思路,尤其是从中间向两边扩散的流水灯更是毫无头绪,希望在这里得到大家的指点,真的非常感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
abdfgh
1楼-- · 2019-10-16 02:45
4个按键按下置位4个标志位,写4个小函数,每个函数实现一种功能,拉8个IO口控制8个LED,每次给8个IO口写状态,中间用延时(取决于你的流水速度)连起来,主函数判断按键的标志位(if或者switch)然后对应执行你的小函数就可以了,这是最通俗最直接的办法...
来俩不甜的
2楼-- · 2019-10-16 04:13
 精彩回答 2  元偷偷看……
我爱STM
3楼-- · 2019-10-16 04:55
abdfgh 发表于 2016-12-22 10:12
4个按键按下置位4个标志位,写4个小函数,每个函数实现一种功能,拉8个IO口控制8个LED,每次给8个IO口写状态,中 ...

谢谢大哥您了,您的意思是在SWITCH后面每个情况调用一个led初始化函数,从中间向两边的那个函数能给提示一下吗,感觉用库函数写的话没法实现流水功能啊,用寄存器的ODR输出然后移位应该可以,还有一个问题是如果在开头怎么设置一个数组来实现这个流水功能呢?
我爱STM
4楼-- · 2019-10-16 10:31
来俩不甜的 发表于 2016-12-22 14:15
太花哨了,没必要。接着往后学就好了,时间够了就自然而然的会了

恩恩,主要是最近正在做这个实验,需要在proteus上画图,还要把uc系统移植上去,第一步写程序就有点磕磕绊绊,所以就在这求助了
tmalgn
5楼-- · 2019-10-16 13:59
叮叮叮,没什么意思,笨蛋
abdfgh
6楼-- · 2019-10-16 18:58
我爱STM 发表于 2016-12-22 19:58
谢谢大哥您了,您的意思是在SWITCH后面每个情况调用一个led初始化函数,从中间向两边的那个函数能给提示 ...

...这个...51你用过吗? 用过不会写跑马灯...
最笨的方法用原子的sys.c里的位带操作,把你8个IO定义出来#define LED0        PEout(8)等等的 然后LED0=0和LED=1之间切换就行了 反正你又不跑其他东西,中间用delay_ms()串起来
好比你用的PE0~PE7,中间往两边那不就是先控制34,再控制25,再控制16么...

一周热门 更多>