STM32F103寄存器方式点亮LED流水灯

本文介绍了如何使用STM32F103寄存器方式控制LED流水灯,涉及地址映射、寄存器配置、GPIO初始化,并提供了汇编语言和C语言的编程实现。实验中利用STM32最小系统板和外部LED灯,通过GPIOB、GPIOC、GPIOD端口实现LED轮流闪烁,间隔1秒。同时,详述了实验准备、接线及烧录过程,激发了作者对STM32更深入学习的兴趣。

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

 

目录

实验目标:

实验准备工作;

实验代码

 总结


实验目标:

学习和理解STM32F103系列芯片的地址映射和寄存器映射原理;了解GPIO端口的初始化设置三步骤(时钟配置、输入输出模式设置、最大速率设置)

以 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED 搭建电路,使用GPIOB、GPIOC、GPIOD这3个端口控制LED灯,轮流闪烁,间隔时长1秒。

(1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;

(2)分别用汇编语言,C语言编程实现。

实验准备工作;

stm32最小开发板,led灯,面包板,CH340转接线,KEIL5

实验所需软件:

烧录软件:mcuisp,以及USB转串口驱动_CH340。

我实验所使用的是野火开发板:模型图如下:

实验代码

#include "stm32f10x.h"
#include "bsp_led.h"

#define SOFT_DELAY Delay(0x0FFFFF);

void Delay(__IO u32 nCount); 

/**
  * @brief  Ö÷º¯Êý
  * @param  ÎÞ  
  * @retval ÎÞ
  */
int main(void)
{	
	/* LED ¶Ë¿Ú³õʼ»¯ */
	LED_GPIO_Config();	 

	while (1)
	{
		LED1_ON;			  // ÁÁ
		SOFT_DELAY;
		LED1_OFF;		   // Ãð

		LED2_ON;			 // ÁÁ
		SOFT_DELAY;
		LED2_OFF;		   // Ãð
    
   LED3_ON;			 // ÁÁ
		SOFT_DELAY;
		LED3_OFF;		   // Ãð

	}
}

void Delay(__IO uint32_t nCount)	 
{
	for(; nCount != 0; nCount--);
}

采用汇编语言如下,仅供参考。

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值