stm32跑马灯寄存器版本

本文详细介绍了使用STM32mini开发板实现跑马灯效果的全过程。包括所需软件Keil uVision和flymcu的使用,以及硬件需求。通过内部教材提供的寄存器版本代码,具体讲解了如何配置GPIO端口,实现LED的亮灭控制,并通过延时函数达到闪烁效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.所需软件: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上传板子。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值