一、STM32寄存器点亮LED灯

目录

 一:硬件介绍

 二:三步点亮LED灯

 三:新建工程

 四:寄存器程序

1:使能GPIOC的时钟 

2、配置GPIOC13端口为输出模式(端口配置寄存器)。

3、配置GPIOC13端口输出低电平(输出数据寄存器)。

 五:下载程序到开发板


 一:硬件介绍

 二:三步点亮LED灯

  1. 使能APB2上的GPIOC时钟。
  2. 配置GPIOC13端口为输出模式(端口配置寄存器)。
  3. 配置GPIOC13端口输出低电平(输出数据寄存器)。

 三:新建工程

  1. 新建工程,点击 Project ,点击New Vision Project...。
  2. 取名 zero-progrom 并保存文件。
  3. 选择 stm32f103的芯片包,点击ok.
  4. 新建完成,发现缺少main函数。
  5. 找到项目,添加main函数。
  6. keil软件项目中手动添加 main.c 文件。右击Source Group 1---->左击Manage progect items...---->在files中,点击 Add filess 添加刚才创建好的main.c文件
  7.  添加F1的启动文件:①项目文件添加、②keil软件添加

 四:寄存器程序

1:使能GPIOC的时钟 

  1. 在存储器映像中找到AHB总线复位和时钟控制(RCC)外设的的起始地址  0x40021000
  2. 记录APB2外设时钟使能寄存器(RCC_APB2ENR)的偏移地址 0x18。
  3. 打开端口C的时钟:1为打开。

	//1、使能GPIOC的时钟  0x4002 1000 + 0x18*(unsigned int *)0x40021018 |= 0x01 << 4;// *(unsigned int *)是先将获得到的GPIOC的时钟地址(此时只是16进制数),转化为地址然后解引用操作。//按位或//0x40021018//假设该地址上的内容为//**** ****//0001 0000//按位或,只将该位的值保证改为1,其他位不变;

2、配置GPIOC13端口为输出模式(端口配置寄存器)。

  1.  找到GPIOC的起始地址:0x4001 1000
  2. C13,13属于高位,找到端口配置高寄存器的偏移地址。0x04
  3. 设置为推挽输出模式,速度设置为10MHZ,0x0001
	//2、配置GPIOC13端口为输出模式(端口配置寄存器)。 0x4001 1000 + 0x04*(unsigned int *)0x40011004 |= 0x01 << 20;

3、配置GPIOC13端口输出低电平(输出数据寄存器)。

  1.  起始地址仍为0x4001 1000,偏移地址为:0ch
  2. 要将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,其他位不变;}

 五:下载程序到开发板

  1. 点击魔法棒---->output---->勾选Creat  HEX file,用于生成下载文件。
  2. 将boot0置1,也就是将被boot0置为3.3v
  3. 安装串口驱动,CH340。
  4. 此时,使用的是串口下载,确保串口1的PA9和PA10两根线连接好。
  5. 选择FlyMcu
  6. 点击开始编程,就可以下载了。
  7. 下载后重新将boot0置零,之后插电复位,LED就点亮了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部