目录
一:硬件介绍
二:三步点亮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就点亮了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)