基于stm32简单程序:LED闪烁
1、新建工程项目及文件1.1 新建工程1.2 新建文件
2、新建protues电路2.1 新建工程2.2 选择元器件2.3 连接元器件
3、导入文件并仿真
(本文章暂时写到文件编译完成后面仿真相关步骤后续补充)
1、新建工程项目及文件
1.1 新建工程
1.1.1点击新建一个项目 1.1.2选择工程项目存放路径 这里放在名为led文件夹中并取名为led 点击保存 1.1.3选取stm32型号 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201008135748502.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTk5NzUz,size_16,color_FFFFFF,t_70#pic_center)
选择STM32F103R6 点击OK 1.1.4选择软件构件 按照序号选择即可 点击OK工程创建完成
1.2 新建文件
1.2.1新建文件 在菜单栏File中点击New即可 1.2.2写入代码
//宏定义,用于存放stm32寄存器映射
#define PERIPH_BASE ((unsigned int)0x40000000)//AHB
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
//GPIOA_BASE=0x40000000+0x10000+0x0800=0x40010800,该地址为GPIOA的基地址
#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
//GPIOB_BASE=0x40000000+0x10000+0x0C00=0x40010C00,该地址为GPIOB的基地址
#define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
//GPIOC_BASE=0x40000000+0x10000+0x1000=0x40011000,该地址为GPIOC的基地址
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
//GPIOD_BASE=0x40000000+0x10000+0x1400=0x40011400,该地址为GPIOD的基地址
#define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
//GPIOE_BASE=0x40000000+0x10000+0x0800=0x40011800,该地址为GPIOE的基地址
#define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00)
//GPIOF_BASE=0x40000000+0x10000+0x0800=0x40011C00,该地址为GPIOF的基地址
#define GPIOG_BASE (APB2PERIPH_BASE + 0x2000)
//GPIOG_BASE=0x40000000+0x10000+0x0800=0x40012000,该地址为GPIOG的基地址
#define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C
#define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C
#define GPIOC_ODR_Addr (GPIOC_BASE+12) //0x4001100C
#define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C
#define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C
#define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C
#define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)
volatile unsigned int CRL;
volatile unsigned int CRH;
volatile unsigned int IDR;
volatile unsigned int ODR;
volatile unsigned int BSRR;
volatile unsigned int BRR;
volatile unsigned int LCKR;
} GPIO_TypeDef;
//GPIOA指向地址GPIOA_BASE,GPIOA_BASE地址存放的数据类型为GPIO_TypeDef
#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE)
void LEDInit( void )
{
RCC->APB2ENR|=1CRH|=0X00000003;
}
//粗略延时
void Delay_ms( volatile unsigned int t)
{
unsigned int i,n;
for (n=0;n
LED0=0;//LED熄灭
Delay_ms(500);//延时时间
LED0=1;//LED亮
Delay_ms(500);//延时时间
}
}
(此处代码参照博客stm32简单程序的编译)
1.2.3将文件加入工程项目再编译 点击保存 选择保存路径以及文件名 点击编译 显示没有错误之后 点击 Options for Target
按照顺序设置生成hex文件 再次编译即可在保存的文件夹里看到有hex文件生成
至此程序编译已经完成,接下来需要搭建仿真电路并将程序导入芯片执行,检验程序是否能实现功能。 (本文章暂时写到文件编译完成后面仿真相关步骤后续补充)
2、新建protues电路
2.1 新建工程
2.1.1新建工程 2.1.2更改工程名以及储存路径 之后一直点击下一步直到完成即可
2.2 选择元器件
2.2.1 打开元器件库选择要用的元器件 2.2.2找到元器件并添加 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201008140104603.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1OTk5NzUz,size_16,color_FFFFFF,t_70#pic_center)
2.3 连接元器件
3、导入文件并仿真
|