|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM32之流水灯。& y! z5 F& C8 L# T- b2 J3 t
◆实验目的:# e; O% n$ f- f! _" F, T# K8 I1 [6 Y
学习GPIO作为输出的使用. T7 C* c1 @( l) j' H* ^
+ W7 R' j/ L; ^2 J5 r
◆硬件资源:
0 c, t( N' M8 L( l 1,LED PB口(0~15) 5 p6 M9 E) q7 `; Z' [
: i" x, `# |/ C* o7 n* j0 a ◆实验现象: u+ x/ J. F2 V; e; g3 d
本实验通过代码控制STM32开发板上的16个LED左移/右移闪烁,实现流水灯的效果。
+ v b" s `- Y2 b . Q' d8 {' h+ e* g% `
STM32单片机源程序如下:
" a3 S& t$ ? h5 S f# @/ j - #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位
- }
- }
- }
- //**************************************************************************************************
- k5 d$ _5 m* I% H3 i) K) M 1 f) a9 }3 Q8 l: r9 [7 V$ e
|
|