| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F103寄存器方式点亮LED流水灯 -> 正文阅读 |
|
[嵌入式]STM32F103寄存器方式点亮LED流水灯 |
目录 ? ?一、STM32寄存器规则及IO口介绍本博客将要实现的是控制 STM32 开发板上的三个IO口实现一个类似流水灯的效果,该实验的关键在于如何控制 STM32 的IO口输出。了解了 STM32的IO口如何输出的,就可以实现流水灯了。通过这次的学习,你将初步掌握 STM32 基本 IO 口的使用,而这是迈向STM32的第一步。? STM32 的 IO 口可以由软件配置成如下 8 种模式: 1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能? 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问。STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口 配置寄存器 CRL 和 CRH;2 个 32 位的数据寄存器 IDR 和 ODR;1 个 32 位的置位/复位寄存器 BSRR;一个 16 位的复位寄存器 BRR;1 个 32 位的锁存寄存器 LCKR;这里我们仅介绍常用 的 几个寄存器,我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR。 CRL 和 CRH 控制着每个 IO 口的模式及输出速率。 STM32 的 IO 口位配置表如表所示: ?STM32 输出模式配置如表所示: 接下来我们看看端口低配置寄存器 CRL 的描述,如图所示:? ?该寄存器的复位值为 0X4444 4444,从图 6.1.1 可以看到,复位值其实就是配置端口为浮空 输入模式。从上图还可以得出:STM32 的 CRL 控制着每组 IO 端口(A~G)的低 8 位的模式。 每个 IO 端口的位占用 CRL 的 4 个位,高两位为 CNF,低两位为 MODE。这里我们可以记住几 个常用的配置,比如 0X0 表示模拟输入模式(ADC 用)、0X3 表示推挽输出模式(做输出口用, 50M 速率)、0X8 表示上/下拉输入模式(做输入口用)、0XB 表示复用输出(使用 IO 口的第二 功能,50M 速率)。 CRH 的作用和 CRL 完全一样,只是 CRL 控制的是低 8 位输出口,而 CRH 控制的是高 8 位输出口。这里我们对 CRH 就不做详细介绍了。 给个实例,比如我们要设置 PORTC 的 11 位为上拉输入,12 位为推挽输出。代码如下:
通过这 3 句话的配置,我们就设置了 PC11 为上拉输入,PC12 为推挽输出。 IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只读寄存器,并且只能以 16 位的形式读出。该寄存器各位的描述如图所示: 要想知道某个 IO 口的状态,你只要读这个寄存器,再看某个位的状态就可以了。使用起 来是比较简单的。 ODR 是一个端口输出数据寄存器,也只用了低 16 位。该寄存器为可读写,从该寄存器读 出来的数据可以用于判断当前 IO 口的输出状态。而向该寄存器写数据,则可以控制某个 IO 口 的输出电平。该寄存器的各位描述如图所示:? ? 了解了这几个寄存器,我们就可以开始流水灯实验的真正设计了。? 二、硬件连接设计根据题目要求,使用 三、软件设计3.1配置IO口??我们首先需要配置IO口,这里我们采用的配置方法是使用寄存器。通过配置寄存器的值,来改变IO口的值进行变化。 ?led.h
led.c
?3.2编写主函数?test.c
?3.3烧录:STM32与PC端连接借助FLYMCU下载软件,即可将test.hex载入,软件资料同样可在网盘下载。这里我利用FlyMcu进行。 3.4效果演示? 四、汇编语言实现?代码:
?编译烧录方法同上,效果展示 ? 五、参考文献??【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解_噗噗的罐子博客-CSDN博客https://blog.csdn.net/qq_46467126/article/details/120791793STM32寄存器的简介、地址查找,与直接操作寄存器_geekYatao-CSDN博客_stm32寄存器https://blog.csdn.net/geek_monkey/article/details/86291377从零开始一起学stm32(一)---寄存器操作GPIO_李纳克斯的博客-CSDN博客寄存器操作GPIO口1.ARM 介绍2.开发板的介绍2.1软件安装2.2工程建立总线架构和时钟树GPIO口使用寄存器操作GPIO口作业:点亮LED灯1、ARM的介绍1.咱们今天学的是基于ARM cortex-m3的STM32微控制器这本书;首先,咱们要了解这几个名词的意思:ARM:是一个公司的名字---设计芯片内核架构的---设计CPU的cortex-...https://blog.csdn.net/qq_38639426/article/details/88625547 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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 6:32:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |