STM32初学者项目一:点亮第一颗LED灯(基于地址操作)

2023-11-08

步骤1:在SYSTEM创建相应的外设文件夹以及对应的.c/.h源文件(具体可参考之前写的创建基本工程文件)

基于STM32官方库如何独立创建一个标准的STM32F103X的标准工程文件_是浩吉呀哈的博客-CSDN博客

步骤2:将对应的源文件加入工程中

步骤3:查看硬件连接情况,在我使用的单片机中红灯是作为电源指示灯的功能,所以通电就会亮。插件式贴片式两种,(本文采用的是贴片式)插件式元件有较长的引脚,需要穿过PCB板,所以必须开孔才能焊接,如常见的Lamp、食人鱼等;

        LED的工作条件就是在灯的两边产生电势差;从下面电路图可以看出所有灯的一端在单片机上接着一个VCC(电源正极、高电平),所以我们要想点亮它,就必须在灯的另外一端接地(低电压、零伏)。所以我们只需要把PB6、PB7、PB8、PB9这几个端口统一下拉(给低电平)。

 步骤4:打开相应的(你当前用到的外设)外设时钟,因为我们使用到的端口是PB6、PB7、PB8、PB9,所以我们需要在STM32中文参考手册找到连接的外设GPIOB口(以下是STM32中文参考手册下载链接,需要的可以自行下载)

百度网盘链接:https://pan.baidu.com/s/1TB299-w3ECbpDKoWthHWlw?pwd=hj66 
提取码:hj66 

                这是配置总路线:

        首先我们需要写的是GPIO的输出初始化程序:

       1)首先我们需要做的是选定GPIO后,看需要配置的时钟线是哪一个(时钟在32中的作用可以想象成心脏,没有心脏所有程序都会运行失败),然后把相应的时钟打开

0x40021018是基地址,并不是APB2 外设时钟使能寄存器(RCC_APB2ENR)的地址,还需要加上他的偏移地址。0x40021018=0x4002100+0x18;

       2)选定GPIO(具体),这里我们选定的是GPIOB,记住它的地址。

此时,我们需要配置IO口的输出模式(寄存器GPIO_CRL和寄存器GPIO_CRH),此时因为我们测试就点亮PB6、PB7这两个端口的灯(端口0-7配置在寄存器GPIO_CRL,端口8-15在寄存器GPIO_CRH)所以,我们需要把六号和七号配置成通用推挽输出模式。

         3)控制GPIO输出高低电平(寄存器GPIO_ODR) 

因为32的端口配置完之后默认的是低电平,所以LED一来就就会被点亮,这个时候我们需要将整个端口上拉!

那么,到这我们的LED灯初始化就已经完成!

步骤5:将LED灯进行宏定义,在主函数中方便调用。

 步骤5:在主函数中调用。

主函数中调用的是毫秒级延时函数,具体代码如下

 

 今天笔记分享到这,希望能够得到大家的指正!!谢谢!

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32初学者项目一:点亮第一颗LED灯(基于地址操作) 的相关文章

  • 线性动归1---数字三角形及动归模型

    学习目标 1 了解动归 2 能用动归解决的条件 3 使用动归解题的一般步骤 学习内容 一 数字三角形1 0 题目描述 观察下面的数字金字塔 写一个程序查找从最高点到底部任意处结束的路径 使路径经过数字的和最大 每一步可以从当前点走到左下方的
  • Python数据分析复习整理(综合应用)

    数据分析 指使用适当的统计分析方法对搜集来的大量数据进行分析 提取有用信息并形成结论 从而对数据进行更加详细的研究和概括总结的过程 数组转置 数据转置是数组重塑的一种特殊形式 哑变量 又称虚拟变量 是用以反映质的属性的一种人工变量 是量化了

随机推荐

  • Tomact使用startup.bat启动闪退解决办法

    Tomact使用startup bat启动闪退解决办法 tomact启动 闪退 原因可能 是JRE环境变量未配置 或配置错误 尝试启动 Tom act
  • Crashlytics工具的接入

    最近应公司上级的指示 要接入Crashlytics来进行bug统计工具 根据官网的指示安装出现了好多坑 费了点劲接入了 但是本人感觉没有啥卵用 具体的看下面这篇文章的介绍 移动平台奔溃收集 http blog csdn net zhuoba
  • WEB前端后端简单区别,通俗理解

    前端开发和后台开发是有区别的 工作的内容和负责的东西是完全的不同的 以下以网站的开发为例 1 前端开发 前端开发现在一般指的就是web前端开发工程师 其负责是网站前端页面也就是网页的页面开发 简单的说网站前端负责是东西是网站用户可见的东西
  • 解决 Agent admitted failure to sign using the key 问题 with ssh

    配置ssh 之前要在本机上装上ssh 可以通过sudo apt get install ssh来安装 如果没有进行配置的话 登录到本机或者远程主机需要该主机的密码才行 下面进行无密码登录的配置 很简单 执行ssh keygen t rsa命
  • VM虚拟机中如何设置ip地址

    当我们在windows环境下 在cmd命令行中输入ipconfig可以看到我们的主机ip地址 但是我们创建了一台虚拟机 并且装好系统时 输入ifconfig 这里和windows下命令不一样 不要搞混了 时 会发现得不到ip地址 下面就说一
  • 删除数组中小于平均值的数

    利用指向一维数组的指针 将一个含有m m lt 10 个整数的一维数组中小于平均值的所有元素顺次删除掉 例如 原数组为3 5 7 4 1 删除后的数组应为5 7 4 提示 先输入数组元素个数 再依次输入数组元素的值 include
  • 吊打面试官:2023最新安全渗透面试题。

    安全渗透面试题 1 引言 2 安全渗透面试题 2 1 什么是渗透测试 2 2 你能提供一些常见的渗透测试工具和技术吗 2 3 在渗透测试中 如何利用SQL注入攻击 2 4 在渗透测试中 如何利用XSS攻击 2 5 在渗透测试中 如何利用代码
  • 编译busybox报错:scripts/Makefile.build:192: recipe for target 'loginutils/passwd.o' failed

    ubuntu18 04上编译busybox 提示上图中的错误 如何解决 修改busybox中的源码 include libbb h 中 增加一行 include
  • 已解决:H5移动端网页实现录音功能,js实现录音功能,包括安卓webview接口也可以使用

    遇到一个需求 需要做一个手机网页录音的功能 嵌入到webview中去 用安卓原生录音倒是可以 但是想着尽量去安卓化开发 就想着用纯的js前端代码去实现录音功能 在 Web 应用程序中 JavaScript 是运行在浏览器中的客户端脚本语言
  • Android自定义蒙层

    在开发过程中有时候会遇到特定情况下显示蒙层的需求 比如在点击某个Edittext搜索框时 部分界面出现浅透明蒙层 自定义蒙层 class MongolianView context Context attrs AttributeSet Li
  • 华为p20nfc怎么复制门禁卡_华为手机怎么绑定门禁卡

    绑定门禁卡的功能在华为手机的 钱包 应用内 点击 门钥匙 的选项 选择 添加 就可以将门禁卡贴近NFC功能进行自动读取 添加需要验证华为账号 使用的时候在钱包中选择门禁卡验证指纹之后 靠近读卡机即可 以下是详细介绍 1 打开华为 钱包 应用
  • 第5章 基础——5.3. C++项目组成

    回到目录 白话C 5 3 C 项目组成 首先我们知道了 写一个C 程序 可能需要多个源文件 比如a cpp b cpp 有没有可能只用一个源文件呢 似乎是可以的 比如我们之前写的 Hello world 经典版等项目 不就只有一个main
  • Web前端学习上----(案例实现)

    前言 前言 很多事情先有念头 后来才有了行动 只要坚持 总会在这个过程中收获很多 博客质量也会慢慢提升 我知道想要达到高级的水平 需要不断的学习 在这个过程会吸收大量知识 而人的记忆是有限的 所以每隔一段时间 将学习的东西整理出来 发表成博
  • pcl经典算法60例——所有代码参考链接(开源)

    pcl经典算法60例大集合 方法名称 开源链接 1 打开点云 MFC显示点云 柯西等式的博客 CSDN博客 2 显示法线 PCL计算点云的法线 pcl 法线 Tom Hardy的博客 CSDN博客 3 三角化 PCL学习笔记 点云曲面重建
  • 服务器提示临时文件已满,win10系统提示”由于临时文件夹已满而导致“磁盘空间不足”错误的解决办法_win10教程_uc电脑园...

    如果你已使用 磁盘清理 释放设备上的空间 然后看到 磁盘空间不足 错误 这可能是因为你的临时文件夹正在被 Microsoft Store 使用的应用程序 appx 文件快速占用所致 今天小编就给大家带来win10系统提示由于临时文件夹已满而
  • Mysql读写锁保姆级图文教程

    准备 创建 mylock 表 CREATE TABLE mylock id int 11 NOT NULL AUTO INCREMENT name varchar 20 DEFAULT NULL PRIMARY KEY id ENGINE
  • 抖音最新抓包方案

    可以通过hook java层如下图所示的地方 dy默认走的是quick协议 但是为了兼容更多版本的手机 有一个降级操作 毕竟担心cronet低版本适配不好 所以可以通过hook这个方法来使其强制降级到Http协议 frida脚本 1 2 3
  • JDBC获取数据库连接

    要素一 Driver接口实现类 1 Driver接口介绍 1 1java sql Driver 接口是所有 JDBC 驱动程序需要实现的接口 这个接口是提供给数据库厂商使用的 不同数据库厂商提供不同的实现 1 2在程序中不需要直接去访问实现
  • Git 工作区、暂存区和版本库

    基本概念 我们等来理解下Git工作区 暂存区和版本库概念 工作区 就是你在电脑里能看到的目录 强烈推荐git新手阅读 暂存区 英文叫stage 或index 一般存放在igt 目录下的index文件 git index 中 所以我们把暂存区
  • STM32初学者项目一:点亮第一颗LED灯(基于地址操作)

    步骤1 在SYSTEM创建相应的外设文件夹以及对应的 c h源文件 具体可参考之前写的创建基本工程文件 基于STM32官方库如何独立创建一个标准的STM32F103X的标准工程文件 是浩吉呀哈的博客 CSDN博客 步骤2 将对应的源文件加入