1. STM32 环境搭建 + STM32 新建工程 + Yinyuer(ZCY) 的 STM32 寄存器首次点灯

STM32 环境搭建

安装 keil5

百度网盘

提取码:v2lp

注意:安装路径不能出现中文

下载安装芯片包

百度网盘

STM32F1xx_DFP.1.0.5.pack

提取码:ot7h

STM32F4xx_DFP.1.0.8.pack

提取码:di7e

官网下载

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

找到自己需要的型号

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装芯片包

注意:安装路径不能出现中文

STM32 新建工程

  1. 创建新工程

在这里插入图片描述

  1. 选择对应的芯片

在这里插入图片描述

  1. 在目录底下创建 main.c 文件,加入 main.c 文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 将启动文件复制到目录,添加启动文件

在这里插入图片描述

在这里插入图片描述

  1. 定义声明 SystemInit 函数

在这里插入图片描述

在这里插入图片描述

注意:main 函数最后一个大括号要空一行,否则会报错

在这里插入图片描述

  1. 编译

在这里插入图片描述

0 错误,0警告 good!!!

在这里插入图片描述

Yinyuer(ZCY) 的 STM32 寄存器首次点灯

一、看 STM32 原理图,找到 LED 灯 和 相关寄存器 参数

在这里插入图片描述

D1 直接接 GND,有电源,D1 就会亮
D2 接 GPIOC13 输出低电平,就能点亮
那么我们得让

  1. 启动控制 GPIOC13 的时钟
  2. 将 GPIOC13 配置成输出模式
  3. 让 GPIOC13 配置成低电平

1. 启动控制 GPIOC13 的时钟

看中文参考手册配置寄存器

在这里插入图片描述

找到 复位和时钟控制(RCC) 对应的 起始地址

时钟 的起始地址:0x4002 1000

在这里插入图片描述

由于是 APB2 管,我们也要找到 APB2 外设时钟使能寄存器的偏移地址

APB2 外设时钟使能寄存器的偏移地址:0x18

在这里插入图片描述

时钟起始地址 + APB2外设时钟使能寄存器的偏移地址 = 控制GPIOC13的时钟的寄存器地址

0x4002 1000 + 0x18 = 0x4002 1018

如何打开呢?在中文参考手册继续参考

GPIOC13 C时钟 置 1 开启

在这里插入图片描述

*(unsigned int *)0x40021018 |= 0x01 << 4 //左移4位

* (unsigned int* ) :(unsigned int*)是一个强制类型转换,首先把指针强制转换成(unsigned int*)型,然后再取值。

2. 将 GPIOC13 配置成输出模式

起始地址:0x4001 1000

在这里插入图片描述

偏移地址:0x04

在这里插入图片描述

0x4001 1000 + 0x04 = 0x4001 1004

设置成 推挽输出 以及 输出模式 设置最大为10MHz:

在这里插入图片描述

*(unsigned int*)0x40011004  |= 0x01 << 20 //左移20位

3. 让 GPIOC13 引脚输出低电平

0x0c

0x4001 1000 + 0x0c = 0x4001 100c

在这里插入图片描述

*(unsigned int*)0x4001100c &= ~(0x01 << 13)//左移13位

想把位变成1用或运算
想把位变成0用与运算

在这里插入图片描述

二、整合代码

void SystemInit()//防止系统报错
{
    
    
	
}

int main()
{
    
    
	//1.使能 GPIOC 的时钟
	* (unsigned int *)0x40021018 |= 0x01 << 4;
	
	//2.配置 GPIOC13 为输出模式 0x4001 1000 + 0x04
	* (unsigned int *)0x40011004 |= 0x01 << 20;
	
	//3.配置GPIOC13 输出低电平 0x4001 1000 + 0Ch
	* (unsigned int *)0x4001100c &=~ (0x01 << 13);
}

三、烧写程序

  1. 生成 .hex 文件

在这里插入图片描述

在这里插入图片描述

  1. 烧写 .hex 文件进 STM32

百度网盘下载:

烧写程序

提取码:z0by

事先安装好 usb—tll 的驱动

连接好 USB TO TTL 和 STM32

TXD——PA10
RXD——PA9

将 STM32 上的键帽,置 1

在这里插入图片描述

选择 DTR的高电平复位,RTS高电平进BootLoader 点击编程,按 STM32 上的 REST 键

在这里插入图片描述

在这里插入图片描述

四、点灯成功

复位 STM32 上的键帽,置 0

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46105931/article/details/120279876