目录
- 一、什么是寄存器
-
-
- GPIO
-
- 二、 使用寄存器点亮LED灯
-
- 1. 建立工程模板
-
- 1.1 建立相关文件
- 1.2 建立工程
- 1.3 配置环境
- 2. 配置GPIO端口
-
- 2.1 配置时钟使能
- 2.2 初始化结构体
- 2.3.配置输入输出模式
- 3. 主要函数
-
- 3.1 led.h函数
- 3.2 led.c函数
- 3.3 delay.h函数
- 3.4 delay.c函数
- 3.5 main.c函数
- 4. 生成HEX文件
- 5. 搭建电路
- 6. 用串口下载程序
- 7. 实验结果
- 四、总结
- 五、参考文章
一、什么是寄存器
寄存器是CPU中有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址。
简单来讲,如果将我们的计算机比作一栋大楼,而寄存器就是这栋大楼中的每一间房子,寄存器地址便可以看做是房子的门牌 ,只不过这个门牌 有点特殊,是由0 1比特流构成的。
GPIO
GPIO 是通用输入输出端口的简称,也就是STM32 可控制的引脚, STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
所有的 GPIO 引脚都有基本的输入输出功能。
工作模式:
我们点亮LED灯,需要将其设置成推挽输出模式。
详细可见:STM32寄存器的简介、地址查找,与直接操作寄存器
二、 使用寄存器点亮LED灯
1. 建立工程模板
stm32提供了一个用c语言封装好的固件库,我们要实现什么功能,直接调用相应的库函数即可。
要使用ST固件库,可以建立一个工程模板,方便我们调用函数。
详细建立过程可参考:stm32f103c8t6工程模板的建立
1.1 建立相关文件
新建总文件夹用来存放本次工程的所有程序,然后再建CORE、HARDWARE、OBJ、FWLIB、SYSTEM、USER这六个文件夹。其中,HARDWARE文件夹是用来存放外设硬件代码,OBJ用来存放生成调试代码,FWLIB是各种.c和.h文件,如下图所示:
1.2 建立工程
打开Keil,新建工程至USER文件夹中,具体过程可参考:基于MDK创建纯汇编语言的STM32工程
注意这里的芯片型 选择STM32F103C8(根据自有的芯片选择);
并且在选择运行环境时,不用再勾选 和 。
点击Target,可以看到STM芯片为STM32F103C8,修改晶振频率值为8;
3.4 delay.c函数
本实验调用的是正点原子写好的延时函数用于实现延时1s后三种LED灯轮流闪烁,这里就不多做介绍,若感兴趣,可以自行尝试编写。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!