|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM32之流水灯。! h+ ]0 p* ?- {3 ]9 t& P
◆实验目的:# R8 C0 @% C* A" ^4 y
学习GPIO作为输出的使用
6 T$ g, G1 D, ?# u- d* i+ L
1 r6 G. x6 m; J/ F/ O ◆硬件资源:4 K: q% L* m" e. C: `
1,LED PB口(0~15)
* J/ a) P Z. S3 C" f' [ ( Q/ k" ^6 W- T: j P' Z' M" b
◆实验现象:* W* D# b$ G' L1 w' U3 c, C
本实验通过代码控制STM32开发板上的16个LED左移/右移闪烁,实现流水灯的效果。
# E" b, j* |8 N* J% q; P ! i7 H9 B5 m0 G& G
STM32单片机源程序如下:: I1 u, q+ o5 r6 U% U3 J% J4 S
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- //*******************下面注释掉的代码是通过 直接操作寄存器 方式实现IO口控制**************************************
- int main(void)
- {
- u8 i;
- delay_init(); //初始化延时函数
- LED_Init(); //初始化LED端口
- while(1)
- {
- GPIOB->BSRR=GPIO_Pin_All;//LED0灭
- for(i=0;i<17;i++)
- {
- delay_ms(100);
- GPIOB->BRR=(GPIO_Pin_0<<i);//LED左移1位
- }
- GPIOB->BSRR=GPIO_Pin_All;//LED0灭
- for(i=0;i<17;i++)
- {
- delay_ms(100);
- GPIOB->BRR=(GPIO_Pin_15>>i);//LED0右移1位
- }
- }
- }
- //**************************************************************************************************
- 2 E( [) a+ H6 b6 Z& w
8 \) Z& j5 F1 g) T8 k) r& g
|
|