1、新建工程

2、添加main.c,添加启动文件.s

启动文件 容量
startup_stm32f10x_ld.s
64K
startup_stm32f10x_md.s 64K~128K
startup_stm32f10x_hd.s 256K

image.png

3、使能GPIO的时钟

*(uint32_t *)0x40021018 = 0x04;
RCC是复位&时钟控制寄存器,起始地址是0x40021000,加上偏移地址0x18就是APB2外设的起始地址,因为GPIO属于APB2的外设,0x04开启对应的时钟。
注意:值得大家注意的是,由于系统上电复位后,除Flash 接口和SRAM 时钟开启外,所有设备都被关闭,因此在使用STM32 MCU 中的各种片内外设时(包括IO 口、ADC、所有定时器、串口等等),使用前必须设置时钟使能寄存器(RCC APBENR)开启设备时钟,否则不能正常使用该部件。

image.pngimage.png

4、设置GPIO的输出模式

*(uint32_t *)0x40010800 = 0x44444414;
0x40010800是GPIOA的首地址,大部分GPIO每组16个IO,这里只控制低8个,每个IO口由4位控制,高两位控制输入模式,低两位控制IO速率,此处是控制GPIOA.1,推挽输出速率10MHz,
image.png

5、设置GPIO的输出电平

*(uint32_t *)0x4001080C = 0x0000;
配置ODR输出数据寄存器,0x4001080C是输出数据寄存器的起始地址,刚上电输出是低电平。0是低,1是高。
image.png