学习日志16

            学习日志                  姓名:孔令斌        日期:2018.7.24

今日学习任务

完成4个LED灯的点亮程序

 

今日任务完成情况

(详细说明本日任务是否按计划完成,开发的代码量)

今日任务已经成功按计划完成,成功编译出可以实现LED灯循环点亮的程序

 

 

 

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

刚开始对软件不了解,遗漏了一项设置导致LED灯一直不亮,在询问别的小组成员后,我们小组才发现错误。

 

今日未解决问题

  无

 

 

今日开发收获

1.了解了STM32的基本信息

2.学会了使用固件库

3.学会了利用STM32来循环点亮LED灯

自我评价

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 今天的成功编译出一个利用STM32的程序,这让我们对此有了更进一步的了解,但依旧有些地方没搞懂,需要加深学习

    其他

任务一:设计循环点亮LED灯

#include "stm32f4xx.h"

void delay(unsigned int time)
{
  unsigned int n=8*time;
  while(n--);
}

unsigned int i = 2;

int main(void)
{
    //1、开启时钟
    RCC_AHB1ENR |= (1 << 2);
    
        //2、设置对应的io口的模式
        GPIOC_MODER &= ~(3 << 2);   //清零
        GPIOC_MODER &= ~(3 << 4);
        GPIOC_MODER &= ~(3 << 6);
        GPIOC_MODER &= ~(3 << 8);
    
        GPIOC_MODER |= (1 << 2);    //置1,输出
        GPIOC_MODER |= (1 << 4);
        GPIOC_MODER |= (1 << 6);
        GPIOC_MODER |= (1 << 8);
        
        //3、输出模式选择
        GPIOC_OTYPER &= ~(1 << 1);  //推挽
        GPIOC_OTYPER &= ~(1 << 2);
        GPIOC_OTYPER &= ~(1 << 3);
        GPIOC_OTYPER &= ~(1 << 4);
        
        //4、输出速度选择,50MHz
        GPIOC_OSPEEDR &= ~(3 << 2);  //清零
        GPIOC_OSPEEDR &= ~(3 << 4);
        GPIOC_OSPEEDR &= ~(3 << 6);
        GPIOC_OSPEEDR &= ~(3 << 8);
        
        GPIOC_OSPEEDR |=(2 << 2);    //选择50MHz
        GPIOC_OSPEEDR |=(2 << 4);
        GPIOC_OSPEEDR |=(2 << 6);
        GPIOC_OSPEEDR |=(2 << 8);
                
        
        
        while(1)
        {    
            
            //5、输出数据寄存器,控制管脚的电平高低,从而控制灯的亮灭
            GPIOC_ODR |= (1 << 1);       //蓝灯置高电平,亮
            delay(100000);
            
            GPIOC_ODR &= ~(1 << 1);            //熄灭蓝灯
            GPIOC_ODR |= (1 << 2);            //点亮黄灯
            delay(100000);
            
            GPIOC_ODR &= ~(1 << 2);
            GPIOC_ODR |= (1 << 3);
            delay(100000);
            
            GPIOC_ODR &= ~(1 << 3);
            GPIOC_ODR |= (1 << 4);
            delay(100000);
            
            GPIOC_ODR &= ~(1 << 4);            //熄灭绿灯
            GPIOC_ODR |= (1 << 1);            //点亮蓝灯
            delay(100000);
        }

}

void SystemInit(void)
{

}

猜你喜欢

转载自blog.csdn.net/KLB555/article/details/81192327
今日推荐