基于Nucleo-F401RE点个灯(KEIL)

分享了如何利用捡来的Nucleo-F401RE开发板,通过STM32F4xx库驱动LED的教程,包括配置步骤、代码实现和遇到的问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天捡了个Nucleo-F401RE(其实是同事离职后,收拾他桌子时发现他遗留下来的);看着这块板子做的挺精致,拿来玩玩!
搜索了点资料如下在这里插入图片描述

CN2的短接线主要是将SWD连接到了F401芯片上,若想用这块板子的st_link调试其他设备,可将跳线去除,将CN4用线连接到其他设备。
在这里插入图片描述

• STM32F401RET6微控制器,基于ARM Cortex-M4处理器,带DSP,最高支持84MHz主频
• 支持Arduino UNO R3 Shield扩展板,微控制器所有IO口引脚通过排针座引出
• ST-LINK/V2-1调试器,支持对外部微控制器调试
• 3个LED:一个USB通讯LED、一个电源LED、一个用户LED;两个机械按键:复位、用户
• USB接口的3个不同功能:虚拟串口、容量存储、调试接口
• 3种不同供电方式:mini USB接口供电、IO引脚用电、通过Arduino UNO R3 Shield接口供电
• 支持Keil、IAR、embed在线IDE的设计工具

现在用这块板点亮用户LED;

  1. 新建一个LED的project
    在这里插入图片描述

  2. 选择STM32F401RE芯片
    在这里插入图片描述

  3. 之后进行如下配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 新建一个叫USER的文件夹,在里面创建main.c文件;将stm32f4xx_conf.h添加到这个文件夹下;
    并且将STM32F4xx_StdPeriph_Driver文件夹放在项目根目录,这个两个items去网上自己下载;
    选择keil里面的project manage items
    在这里插入图片描述

创建两个Groups,分别叫USER和LIB
在这里插入图片描述

将main.c添加到USER里面
在这里插入图片描述

将STM32F4xx_StdPeriph_Driver文件夹下src下的所有.c文件添加到LIB中
在这里插入图片描述

  1. 鼠标右击工程进入配置的选项面板,进入C/C++的选项里输入STM32F4XX,USE_STDPERIPH_DRIVER,这就是告诉编译器有用ST的库了
    在这里插入图片描述
    在这里插入图片描述

  2. 写代码

#include "stm32f4xx.h"

void GPIO_Initialize (void) 
{

  RCC->AHB1ENR |=  (1ul << 0);
  GPIOA->MODER   &= ~((3ul << 2*5));
  GPIOA->MODER   |=  ((1ul << 2*5));
  GPIOA->OTYPER  &= ~((1ul <<   5));
  GPIOA->OSPEEDR &= ~((3ul << 2*5));
  GPIOA->OSPEEDR |=  ((1ul << 2*5));
  GPIOA->PUPDR   &= ~((3ul << 2*5));
}
int main()
{	
    GPIO_Initialize();
	while(1)
	{
		
        GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
        int temp_cnt=1000000;
        while(temp_cnt--);
        GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_RESET);
        temp_cnt=1000000;
        while(temp_cnt--);
	}	
} 
  1. 编译发现有错误如下!!
    declaration may not appear after executable statement in block

因为keil 默认编译标准是C89
在这里插入图片描述
FSMC不支持
在这里插入图片描述
9. 上网搜索解决方法如下
在这里插入图片描述
在这里插入图片描述
8. 编译通过,烧录到板子里面,LED闪烁。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值