实训第三周第二天

学习日志                                       姓名:成盛                           班级:通卓161

今日学习任务 自习并完成LED相关代码
今日任务完成情况 基本完成
今日开发中遇见的问题 不明白RCC与各针脚之间的联系
今日未解决问题 不明白RCC与各针脚之间的联系
今日开发收获 明白了各寄存器与STM32F429IGT6各引脚之间的关系
自我评价 一般
其他

头文件:

#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
 

main函数

#include "stm32f4xx.h"

int main(void)
{    
    int i ,j = 0,k = 0;
    
    RCC_AHB1ENR |= (1 << 2);
    
    while(1)
    {
        for(i = 1; i < 5 ; i++)
        {
            GPIOC_MODER &= ~(3 << (i * 2));
            GPIOC_MODER |= (1 << (i * 2));
            
            GPIOC_OTYPER &= ~(1 << i);
            
            GPIOC_OSPEEDR &= ~(3 << (i * 2));
            GPIOC_OSPEEDR |= (2 << (i * 2));
            
            GPIOC_ODR |= (1 << i);
            
            for(j = 0; j < 100; j++)
            {
                for(k = 0; k < 8000; k++);
            }
            
            GPIOC_ODR =0x0;
        }
        
    }
}

void SystemInit(void)
{    
}
 

猜你喜欢

转载自blog.csdn.net/cheng1064233793/article/details/81193124