|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM32之流水灯。: B2 `; a' Q- A' V* f( L
◆实验目的:! T: `: K. u+ c9 P" M. H
学习GPIO作为输出的使用
! o2 e9 d" B4 x0 F3 F & `5 ?% ?' e! [7 d6 Y9 }5 `& _7 r
◆硬件资源:! B& s- ]# o b7 A# \6 ^
1,LED PB口(0~15) % j! C# j$ L3 k4 ^5 v1 }
2 c* @8 V1 v: w& ~3 |: v ◆实验现象:# l K% n4 u, q) f( t1 ~
本实验通过代码控制STM32开发板上的16个LED左移/右移闪烁,实现流水灯的效果。 5 M. N/ c" S k% a8 y8 L, ?
$ E0 @3 v2 @8 A% y& u# Q( ? STM32单片机源程序如下:
% Z; c ]" h# G( q: I - #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位
- }
- }
- }
- //**************************************************************************************************
- 0 Y/ |3 Z! }) H& q% D. L( T+ k
6 g5 q$ {1 c1 k$ l7 U- b# I! l. K
|
|