基于寄存器与基于固件库的stm32 LED流水灯

本文介绍了使用寄存器和固件库两种方式在STM32F103-MINI开发板上实现LED流水灯的步骤,包括创建Keil工程、配置GPIO和编写代码。寄存器开发直接操作硬件,代码简洁但易读性差,而固件库开发抽象层次高,易于理解和维护。通过对比,突显了固件库在提高开发效率上的优势。

本文章采用的开发板是野火stm32F103-MINI,下载器是ST_Link,开发环境是Keil5

一、创建一个keil工程(寄存器版)

  1. 打开keil,点击Project,选择New uVision Project
  2. 选择 CPU 型号,根据开发板进行选择
    在这里插入图片描述
  3. 在线添加库文件
    用寄存器控制 STM32 时,不需要在线添加库文件,可以直接关掉。
  4. 添加文件
    ①添加已经存在文件
    在新建的工程中添加启动文件(startup_stm32f10x_hd.s),该文件可以先到固件库中复制到此处startup_stm32f10x_hd.s。
    ②创建新文件
    stm32f10x.h
    手动新建,用于存放寄存器映射的代码,暂时为空。
    main.c
    手动新建,用于存放 main 函数,暂时为空。
  5. 配置魔术棒选项卡
    ①Target设置
    在这里插入图片描述
    ②Output设置
    在这里插入图片描述
    ③Listing设置
    在这里插入图片描述
    ④Debug设置
    在这里插入图片描述
    ⑤Utilities设置
    在这里插入图片描述
    ⑥Debug Settings设置
    在这里插入图片描述
    在这里插入图片描述

二、基于寄存器stm32 LED流水灯

  1. 寄存器的定义
    寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。

  2. GPIO (通用输入输出端口)
    STM32 可控制的引脚。

    此图引用零死角玩转STM32——F103指南版中对GPIO介绍,具体介绍可参考该书。
    GPIO的工作模式

     typedef enum
     {
         
         
    	GPIO_Mode_AIN = 0x0, // 模拟输入
    	GPIO_Mode_IN_FLOATING = 0x04, // 浮空输入
    	GPIO_Mode_IPD = 0x28, // 下拉输入
    	GPIO_Mode_IPU = 0x48, // 上拉输入
    	GPIO_Mode_Out_OD = 0x14, // 开漏输出
    	GPIO_Mode_Out_PP = 0x10, // 推挽输出
    	GPIO_Mode_AF_OD = 0x1C, // 复用开漏输出
    	GPIO_Mode_AF_PP = 0x18
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值