一、STM32寄存器点亮LED灯
目录
一:硬件介绍
二:三步点亮LED灯
三:新建工程
四:寄存器程序
1:使能GPIOC的时钟
2、配置GPIOC13端口为输出模式(端口配置寄存器)。
3、配置GPIOC13端口输出低电平(输出数据寄存器)。
五:下载程序到开发板
一:硬件介绍

二:三步点亮LED灯
- 使能APB2上的GPIOC时钟。
- 配置GPIOC13端口为输出模式(端口配置寄存器)。
- 配置GPIOC13端口输出低电平(输出数据寄存器)。

三:新建工程
- 新建工程,点击 Project ,点击New Vision Project...。

- 取名 zero-progrom 并保存文件。

- 选择 stm32f103的芯片包,点击ok.

- 新建完成,发现缺少main函数。

- 找到项目,添加main函数。

- keil软件项目中手动添加 main.c 文件。右击Source Group 1---->左击Manage progect items...---->在files中,点击 Add filess 添加刚才创建好的main.c文件


- 添加F1的启动文件:①项目文件添加、②keil软件添加

四:寄存器程序
1:使能GPIOC的时钟
- 在存储器映像中找到AHB总线复位和时钟控制(RCC)外设的的起始地址 0x40021000

- 记录APB2外设时钟使能寄存器(RCC_APB2ENR)的偏移地址 0x18。

- 打开端口C的时钟:1为打开。

//1、使能GPIOC的时钟 0x4002 1000 + 0x18*(unsigned int *)0x40021018 |= 0x01 << 4;// *(unsigned int *)是先将获得到的GPIOC的时钟地址(此时只是16进制数),转化为地址然后解引用操作。//按位或//0x40021018//假设该地址上的内容为//**** ****//0001 0000//按位或,只将该位的值保证改为1,其他位不变;
2、配置GPIOC13端口为输出模式(端口配置寄存器)。
- 找到GPIOC的起始地址:0x4001 1000

- C13,13属于高位,找到端口配置高寄存器的偏移地址。0x04

- 设置为推挽输出模式,速度设置为10MHZ,0x0001

//2、配置GPIOC13端口为输出模式(端口配置寄存器)。 0x4001 1000 + 0x04*(unsigned int *)0x40011004 |= 0x01 << 20;
3、配置GPIOC13端口输出低电平(输出数据寄存器)。
- 起始地址仍为0x4001 1000,偏移地址为:0ch

- 要将GPIOC13端口输出低电平,则将位13置零;
//3、配置GPIOC13端口输出低电平(输出数据寄存器)。 0x4001 1000 + 0ch*(unsigned int *)0x4001100c &= ~(0x01 <<13);//按位与//~(0x01 <<13);//0010 0000 0000 0000//1101 1111 1111 1111//0x4002100c//假设该地址上的内容为//**** **** **** ****//1101 1111 1111 1111//按位与:只将该位的值保证改为0,其他位不变;
main.c汇总:
void SystemInit()//此函数为适应启动文件,达到不报错的效果
{//do something
}
int main()
{//1、使能GPIOC的时钟。 0x4002 1000 + 0x18*(unsigned int *)0x40021018 |= 0x01 << 4;// *(unsigned int *)是先将获得到的GPIOC的时钟地址(此时只是16进制数),转化为地址然后解引用操作。//按位或//0x40021018//假设该地址上的内容为//**** ****//0001 0000//按位或,只将该位的值保证改为1,其他位不变;//2、配置GPIOC13端口为输出模式(端口配置寄存器)。 0x4001 1000 + 0x04*(unsigned int *)0x40011004 |= 0x01 << 20;//3、配置GPIOC13端口输出低电平(输出数据寄存器)。 0x4001 1000 + 0ch*(unsigned int *)0x4001100c &= ~(0x01 <<13);//按位与//~(0x01 <<13);//0010 0000 0000 0000//1101 1111 1111 1111//0x4002100c//假设该地址上的内容为//**** **** **** ****//1101 1111 1111 1111//按位与:只将该位的值保证改为0,其他位不变;}
五:下载程序到开发板
- 点击魔法棒---->output---->勾选Creat HEX file,用于生成下载文件。

- 将boot0置1,也就是将被boot0置为3.3v
- 安装串口驱动,CH340。
- 此时,使用的是串口下载,确保串口1的PA9和PA10两根线连接好。
- 选择FlyMcu

- 点击开始编程,就可以下载了。

- 下载后重新将boot0置零,之后插电复位,LED就点亮了。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
