嵌入式系统原理及应用
实验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 * /
}
}
本文来自博客园,作者:逆袭怪,转载请注明原文链接:https://www.cnblogs.com/fghjktgbijn/p/18848754
浙公网安备 33010602011771号