基于stm32简单程序:LED闪烁

您所在的位置:网站首页 stm32简单的点亮led灯程序 基于stm32简单程序:LED闪烁

基于stm32简单程序:LED闪烁

2023-12-28 10:17| 来源: 网络整理| 查看: 265

基于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型号 在这里插入图片描述

选择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找到元器件并添加 在这里插入图片描述

2.3 连接元器件 3、导入文件并仿真


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3