学习日志第十六日

                                                                                 学习日志                                         

                                                                                                         姓名:陈长稳        日期:7.24

今日学习任务           

整理涉及到的寄存器和固件库,开发板有四个灯,实现彩灯功能

今日任务完成情况          

实现了彩灯功能,点亮了开发板上的四个灯,并进行流水灯显示。

今日开发中出现的问题汇总

1.延时函数位置不正确

2.烧入程序时未正确勾选选项

今日未解决问题

今日开发收获

通过实践,对stm32的基础知识有了一定的了解,能够实现彩灯功能。

自我评价

继续努力,加深对stm32基础知识的了解

 

点亮开发板四个彩灯:

程序源代码:

#include "stm32f4xx1.h"

int main(void)
{
	
	RCC_AHB1ENR |= (1<<2);
	
	GPIOC_MODER &= ~(3<<2);
	GPIOC_MODER |= (1<<(2*1));
	
	GPIOC_OTYPER &= ~(1<<1);
		
	GPIOC_OSPEEDR &= ~(3<<2);
	GPIOC_OSPEEDR |= (2<<2);
	
	GPIOC_ODR   |= (1<<1);
	
	GPIOC_MODER &= ~(3<<(2*2));
	GPIOC_MODER |= (1<<(2*2));
	
	GPIOC_OTYPER &= ~(1<<2);
		
	GPIOC_OSPEEDR &= ~(3<<(2*2));
	GPIOC_OSPEEDR |= (2<<(2*2));
	
	GPIOC_ODR   |= (1<<2);
	
	GPIOC_MODER &= ~(3<<(2*3));
	GPIOC_MODER |= (1<<(2*3));
	
	GPIOC_OTYPER &= ~(1<<3);
		
	GPIOC_OSPEEDR &= ~(3<<(2*3));
	GPIOC_OSPEEDR |= (2<<(2*3));
	
	GPIOC_ODR   |= (1<<3);
	
	GPIOC_MODER &= ~(3<<(2*4));
	GPIOC_MODER |= (1<<(2*4));
	
	GPIOC_OTYPER &= ~(1<<4);
		
	GPIOC_OSPEEDR &= ~(3<<(2*4));
	GPIOC_OSPEEDR |= (2<<(2*4));
	
	GPIOC_ODR   |= (1<<4);
	while(1);
		
}

void SystemInit(void)
{
	
}
#ifndef _STM32F4XX_H
#define _STM32F4XX_H

#define PERIPH_BASE         (0x40000000)
#define AHB1PERIPH_BASE     (PERIPH_BASE + 0x20000)

#define RCC_BASE            (AHB1PERIPH_BASE + 0x3800)
#define RCC_AHB1ENR         *(unsigned int *)(RCC_BASE + 0x30)

#define GPIOC               (AHB1PERIPH_BASE + 0x800)
#define GPIOC_MODER         *(unsigned int *)(GPIOC + 0x00)
#define GPIOC_OTYPER        *(unsigned int *)(GPIOC + 0x04)
#define GPIOC_OSPEEDR       *(unsigned int *)(GPIOC + 0x08)
#define GPIOC_PUPDR         *(unsigned int *)(GPIOC + 0x0c)
#define GPIOC_ODR           *(unsigned int *)(GPIOC + 0x14)
	
#endif

猜你喜欢

转载自blog.csdn.net/baqidemingzi/article/details/81193147