| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解 -> 正文阅读 |
|
[嵌入式]【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解 |
文章目录关于STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤,请参考我的前一篇博客。 一、题目简述以 STM32最小系统核心板 二、简述:初始化GPIO,点亮LED灯外设的功能都是完全不同的,但初始化都是大同小异的。 51单片机的点灯是,通过控制寄存器将片外引脚(我们称之为IO口)拉低拉高,输出高低电平,以控制LED亮灭。 stm32的点灯则是,通过使能外设GPIO时钟,发出指令给外设GPIO,外设GPIO收到指令后,着手配置自己的寄存器,然后给IO口模式,让其实现各种功能。 三、工程文件模板的建立建立模板要用到的SYSTEM文件及启动文件,包括点灯时需要的C8T6数据手册,以及烧录用到的FlyMcu,网盘自取。 新建工程 先介绍一下启动代码:启动代码是一段和硬件相关的汇编代码。 ST 公司提供了 3 个启动文件给我们,分别用于不同容量的 STM32 芯片,这三个文件是:
这里,我查看了一下C8T6的数据手册, 为了不让之后生成的文件显得混乱,在 USER 文件夹专门用来存放启动文件(startup_stm32f10x_md.s)、工程文件(test.uvprojx)等不可缺少的文件,而 OBJ 则用来存放这些编译过程中产生的中间文件(包括.hex 文件也将存放在这个文件夹里面)。然后把 Listings 和Objects 文件夹里面的东西全部移到 OBJ 文件夹下。 这一步我自己做的有点凌乱,最后的文件夹结果如图所示,文件夹跟下面差不多一般就没有问题。 同样在本节开头网盘链接内。 如果我们此时编译的话,生成的中间文件,还是会存放在 Listings 和 Objects 文件夹下,所以,我们先设置输出路径,再编译。 点击魔法棒,弹出 Options for Target’Target 1’对话框,选择 Output 选项卡→选中 Create Hex File(用于生成 Hex 文件,后面会用到)→点击 Select Folder for Objects→找到 OBJ 文件夹→点击 OK
我们要将三个路径都加入 四、使用寄存器点亮LED灯——代码部分1、硬件连接设计根据题目要求,使用 图中从 3 个 LED 灯的阳极各经过 1 个限流电阻连接到 3.3V 电源,阴极连接STM32 的 3 个 GPIO 引脚中,所以我们只要控制这三个引脚输出高低电平,即可控制其所连接 LED 灯的亮灭。 目标是把 GPIO 的引脚设置成 但是之后连电路的时候发现并没有PD管脚,于是自己改成了 2、打开之前建立的工程模板具体步骤请往上翻 3、代码编写在Light2文件夹下新建一个HARDWARE文件夹,用来存储以后与硬件相关的代码。 下面来编写led.c文件,要用到GPIOB、GPIOC、GPIOD则,对应时钟设置:
这段代码里面最关键就是 3 个推挽输出代码的撰写
这段代码里面最关键就是 3 个宏定义:
在USER文件夹的test.c中撰写main函数
代码包含了#include "led.h"这句,使得 LED0、LED1、LED2、LED_Init 等能在 main 函数里被调用。 我们编译看看是否报错。 4、硬件连接烧录:STM32F103C8T6与PC端连接打开C8T6数据手册,查找TXD和RXD管脚位置 务必将boot0设为1,boot1设为0,利用跳线帽实现
五、使用寄存器点亮LED灯——电路部分1、面包板介绍面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。
面包板背面示意图,看到背面示意图的情况,应当就很容易理解面包板之后应当如何接线了。 每 5 个插孔为一组,通常的面包板上有 10 组或 11 组。 中间部分宽条是由中间一条隔离凹槽和上下各 5 行的插孔构成。在同一列中的 5 个 插孔是互相连通的,列和列之间以及凹槽上下部分则是不连通的。 2、电路连接让 STM32 一按复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设置都可以。 在将C8T6连接到电路板之前,一定要先将BOOT0置位0,否则电路无效!!! 面包板连线,按照这个图连接,只不过我在实际电路时手头没有电阻,于是就没有连接电阻。
六、总结面包板是个很方便的东西,比焊接快多了,以后可以多多利用。 参考 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 7:39:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |