stm32跑马灯寄存器版本

一.所需软件:1.keiluvision  2.flymcu(自行下载)

所需硬件:stm32mini开发板

二.代码:来自内部教材,标本历程跑马灯寄存器版本

1.led.h

#ifndef __LED_H
#define __LED_H

void LED_Init(void);

#endif



2.led.c

#include "stm32f10x.h"
#include "led.h"

void LED_Init(void)
{
    RCC->APB2ENR|=1<<2;     //使能A时钟
    RCC->APB2ENR|=1<<5;     //使能D时钟
    
    GPIOA->CRH&=0xFFFFFFF0;    //将A端口高位的第一位,即A8位先清除
    GPIOA->CRH|=0x00000003;     //将A8设置为推挽输出输出速率为50MHz
    GPIOA->ODR|=1<<8;                //拉高A8电平,先使其没有电压差
    
    GPIOD->CRL&=0xFFFFF0FF;   //将D端口高位的第一位,即D2位先清除
    GPIOD->CRL|=0x00000300;     //将D2设置为推挽输出输出速率为50MHz
    GPIOD->ODR|=1<<2;               //拉高D2电平,先使其没有电压差
    
}



3.main.c

#include "stm32f10x.h"
#include "delay.h"
#include "led.h"

int main(void)
{
    delay_init();     
    LED_Init();
    while(1)
    {
        GPIOA->ODR|=1<<8;     //A8电平拉高
        GPIOD->ODR|=1<<2;     //D2电平拉高
        delay_ms(500);              //延迟500ms
        
        GPIOA->ODR=~(1<<8);    //A8电平拉低,产生电压差
        GPIOD->ODR=~(1<<2);   //D2电平拉低,产生电压差
        delay_ms(500);
            
    }
    
}

三.将obj文件通过flycu上传板子。

 

你可能感兴趣的:(stm32跑马灯寄存器版本)