IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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流水灯

目录

一、STM32F103系列芯片的地址映射和寄存器映射原理

1.什么是寄存器?

2.地址映射和寄存器映射原理

?二、GPIO端口的初始化设置步骤

1.GPIO简介

2.GPIO框图剖析

?3.GPIO初始化步骤

三、C语言编程

1.GPIO的地址

?

2.新建项目

3.设置

?4.编译

?四、电路实现点亮LED流水灯

1.串口方式烧录程序

2.成功实现点亮LED流水灯

五、参考资料


一、STM32F103系列芯片的地址映射和寄存器映射原理

1.什么是寄存器?

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。

2.地址映射和寄存器映射原理

存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。

在存储器的区域单元中,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

?二、GPIO端口的初始化设置步骤

1.GPIO简介

GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32芯片的GPIO被分成很多组,每组有16个引脚,如型号为STM32F4IGT6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOI共9组GPIO,芯片一共176个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。

最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,那就可以控制LED灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的通断。

最基本的输入功能是检测外部输入电平,如把GPIO引脚连接到按键,通过电平高低区分按键是否被按下。

2.GPIO框图剖析

?3.GPIO初始化步骤

第一步:使能GPIOx口的时钟
第二步:指明GPIOx口的哪一位,这一位的速度大小以及模式
第三步:调用GPIOx初始化函数进行初始化
第四步:调用GPIO-SetBits函数,进行相应位的置位





三、C语言编程

1.GPIO的地址

在这里插入图片描述
?

2.新建项目

新建项目并保存

选择芯片STM32F103C8

?添加.c文件

?编写程序:

#define GPIOB_BASE 0x40010C00
#define GPIOC_BASE 0x40011000
#define GPIOA_BASE 0x40010800

#define RCC_APB2ENR (*(unsigned int *)0x40021018)

#define GPIOB_CRL (*(unsigned int *)0x40010C00)
#define GPIOC_CRH (*(unsigned int *)0x40011004)
#define GPIOA_CRL (*(unsigned int *)0x40010800)

#define GPIOB_ODR (*(unsigned int *)0x40010C0C)
#define GPIOC_ODR (*(unsigned int *)0x4001100C)
#define GPIOA_ODR (*(unsigned int *)0x4001080C)
	


void SystemInit(void);
void Delay_ms(volatile  unsigned  int);

void Delay_ms( volatile  unsigned  int  t)
{
     unsigned  int  i;
     while(t--)
         for (i=0;i<800;i++);
}


int main(){

	RCC_APB2ENR |= (1<<3); 
	RCC_APB2ENR |= (1<<4); 
	RCC_APB2ENR |= (1<<2); 
	
	

	GPIOB_CRL |= (1<<0);  
	GPIOB_CRL &= ~(0xE);  

	GPIOC_CRH |= (1<<28); 
	GPIOC_CRH &= ~(0xE0000000);  

	GPIOA_CRL |= (1<<0);  
	GPIOA_CRL &= ~(0xE);  

	
	
	GPIOB_ODR |= (1<<0);  
	GPIOC_ODR |= (1<<15); 
	GPIOA_ODR |= (1<<0);  
	
	
	while(1){
		GPIOB_ODR &= ~(1<<0); 
		Delay_ms(1000000);
		GPIOB_ODR |= (1<<0);  
		Delay_ms(1000000);
		
		GPIOC_ODR &= ~(1<<15); 
		Delay_ms(1000000);
		GPIOC_ODR |= (1<<15);  
		Delay_ms(1000000);
		
		GPIOA_ODR &= ~(1<<0); 
		Delay_ms(1000000);
		GPIOA_ODR |= (1<<0);  
		Delay_ms(1000000);
		
	}
	
}


void SystemInit()
{
	
}

?将所需要的启动文件复制到项目目录下(f103c8t6启动文件为startup_stm32f10x_md.s)

3.设置

勾选Create HEX File?

Debug下选择Use Simulator?

?4.编译

?编译并生成.hex文件

?四、电路实现点亮LED流水灯

1.串口方式烧录程序

连接电路,注意:跳线高电平boot 0要设置为1

?下载烧录工具软件mcuisp,接入电路,点击搜索串口,设置bps为256000,最下方设置为DTR的低电平复位,

RTS高电平进BootLoader ,选择.hex文件

点击读取器件信息,连接成功后,点击开始编程?,注意实验过程中不能拔出USB,否则需要重新烧录。

2.成功实现点亮LED流水灯

五、参考资料

【嵌入式07】寄存器映射原理详解,GPIO端口的初始化设置步骤

STM32 F103之点亮LED流水灯 (STM32入门学习)

GPIO介绍

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:40:09  更:2021-10-25 12:40:36 
 
开发: 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:25:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码