| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32F103寄存器方式实现流水灯 -> 正文阅读 |
|
[嵌入式]STM32F103寄存器方式实现流水灯 |
目录 一、相关寄存器配置1.1首先配置时钟效能因为默认的时钟都是关闭的,所以在配置STM32之前,都必须先配置时钟。这些我们都i可以在参考手册里查。时钟控制叫做RCC,是属于AHB总线的,我们使用的是GPIOA/B/C端口都是属于APB2. 下面以GPIOB口为例,GPIO端口B的地址从0x4001 0C00开始,我们从手册中可以得知复位和时钟控制RCC的地址从0x4002 1000开始,再找到APB2外设时钟使能寄存器,可以看到其偏移地址为0x18,所以APB2的地址就是0x4002 1018。 ? 根据手册可以知道IO端口B时钟使能是RCC_APB2ENR的位3,我们把RCC_APB2ENR位的3赋值为1,就能开启GPIOB时钟。
?1.2配置为通用输出由于STM32的每个IO都需要4个位来配置,所以一个32位的寄存器最大只能配置8个IO(32位的单片机的寄存器就是32位的)。STM32中,用端口配置低寄存器(GPIOx_CRL)来配置引脚Px0-Px7, 用端口配置高寄存器(GPIOx_CRH)来配置引脚Px8-Px15。 ?偏移地址是0x00,意思是在基地址的基础上再加0x00,所以,对于GPIOB来说就是0x4001 0c00。配置PB7,那么需要的寄存器是低位的寄存器GPIOB_CRL,它的地址是0x4001 0c00。找到需要操作的寄存器后,把它配置为通用输出。 我们设置输出模式,这里设置成推免输出。 ?点亮LED的话需要输出低电平所以我们找到端口输出数据寄存器,然后将第8位输出0 ? ?
GPIOB的基本的配置就是这样,其他口则查找参考手册如上即可,再加上延迟函数即可实现流水灯。 二、C语言实现流水灯2.1创建新项目先再keil中新建一个项目,再添加新的项目 注意一定要勾选output中的生成hex文件 ? ?代码如下
2.2烧录程序生成hex文件后,打开烧录软件 ? ?烧录是要把板子上的boot0置1,boot1置0,并且要按下reset键 这时候我们就可以进行编程 ? ?这时我们就已经烧录成功了。 2.3运行结果?三、总结本次实验中我对寄存器的端口地址和具体的用法有了一定的了解,还学会了用寄存器的方式来点亮流水灯,在实验的过程中也遇到了不少的困难也有许多不理解的地方,查阅了参考手册和一些大佬,第一次做流水灯做得不好。 四、参考文献https://blog.csdn.net/junseven164/article/details/120804940?spm=1001.2014.3001.5501 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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:30:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |