嵌入式系统原理及应用

实验2 寄存器板LED灯闪烁原理
 1.设置GPIOF_ODR寄存器LED闪烁源程序,如下:

# include "main.h"
int main(void)
{
	__IO uint32_t i;
	RCC -> AHB1ENR = RCC -> AHB1ENR | 0x00000020;
	GPIOF -> MODER = 0x00005555;
	while(1)
	{
		GPIOF -> ODR = 0x00000000;
		for(i = 0; i < 1000000; i ++);
		GPIOF -> ODR = 0xFFFFFFFF;
		for(i = 0; i < 1000000; i ++);
	}
}

 2.设置GPIOF_BSRR寄存器LED闪烁源程序,如下:

# include "main.h"
int main(void)
{
	__IO uint32_t i;
	RCC -> AHB1ENR = RCC -> AHB1ENR | 0x00000020;
	GPIOF -> MODER = 0x00005555;
	while(1)
	{
		GPIOF -> BSRR = 0x00000000;
		for(i = 0; i < 1000000; i ++);
		GPIOF -> BSRR = 0xFFFFFFFF;
		for(i = 0; i < 1000000; i ++);
	}
}

实验3 流水灯控制

# include "main.h"
# include "gpio.h"
void SystemClock_Config(void) ;
/* USER CODE BEGIN 0 * /
void delay(uint32_t i)
{
    while(i--);
}
/ * USER CODE END 0 * /
int main(void)
{
    HAL_Init();			//系统初始化
    SystemClock_Config();	//系统时钟配置
    MX_GPIO_Init();		//GPIO 初始化
    / * USER CODE BEGIN WHILE * /
    while (1)
   {
   	GPIOF - > ODR = 0xFE;
    	delay(24000000) ;
    	GPIOF - > ODR = 0xFD;
    	delay(24000000) ;
    	GPIOF - > ODR = 0xFB;
    	delay(24000000);
    	GPIOF - > ODR = 0xF7;
    	delay(24000000);
    	GPIOF - > ODR = 0xEF;
    	delay (24000000);
    	GPIOF - > ODR = 0xDF ;
    	delay (24000000);
    	GPIOF - > ODR = 0xBF;
    	delay(24000000);
    	GPIOF - > ODR = 0x7F ;
    	delay (24000000);
    	/* USER CODE END WHILE * /
    }
}
posted on 2025-04-27 08:30  逆袭怪  阅读(30)  评论(0)    收藏  举报