【实验一】跑马灯实验

一、实验目的

通过控制战舰STM32开发板上的两个LED灯:DS0和DS1交替闪烁,实现类似跑马灯的效果。


二、STM32 IO简介

STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH; 2 个 32 位的数据寄存器 IDR 和 ODR; 1 个 32

 位的置位/复位寄存器BSRR;一个 16 位的复位寄存器 BRR; 1 个 32 位的锁存寄存器 LCKR。

8种模式:

1、 输入浮空
2、 输入上拉
3、 输入下拉
4、 模拟输入
5、 开漏输出
6、 推挽输出
7、 推挽式复用功能
8、 开漏复用功能

IO 操作步骤:

1) 使能 IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd()。
2) 初始化 IO 参数。调用函数 GPIO_Init()。
3) 操作 IO。


三、硬件设计

硬件只有 LED( DS0 和 DS1);DS0 接 PB5, DS1 接 PE5。


四、软件设计

1)使用到的固件库文件

stm32f10x_gpio.c /stm32f10x_gpio.h

stm32f10x_rcc.c/stm32f10x_rcc.h

misc.c/ misc.h

stm32f10x_usart /stm32f10x_usart.h

led.c 文件

void LED_Init(void)

{

 

 GPIO_InitTypeDef  GPIO_InitStructure;

 	

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);	 //使能PB,PE端口时钟

	

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;			 //LED0-->PB.5 端口配置

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz

 GPIO_Init(GPIOB, &GPIO_InitStructure);				 //根据设定参数初始化GPIOB.5

 GPIO_SetBits(GPIOB,GPIO_Pin_5);				 //PB.5 输出高


 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;	    		 //LED1-->PE.5 端口配置, 推挽输出

 GPIO_Init(GPIOE, &GPIO_InitStructure);	  			//推挽输出 ,IO口速度为50MHz

 GPIO_SetBits(GPIOE,GPIO_Pin_5); 				//PE.5 输出高 

}

main.c 文件

 int main(void)
 {	
	delay_init();	    	  
	LED_Init();		  	
	while(1)
	{
		LED0=0;
		LED1=1;
		delay_ms(300);	 
		LED0=1;
		LED1=0;
		delay_ms(300);	
	}
 }

五、实验结果

成功!


你可能感兴趣的:(处理器【STM32】)