Stufin
Home Quick Cart Profile

STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board

Buy Now

Component Name

STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board

Overview

The NUCLEO-F401RE is a development board from STMicroelectronics, part of the STM32 Nucleo-64 family. This board is designed to facilitate the development of IoT and embedded systems applications using the STM32F401RET6 microcontroller. The NUCLEO-F401RE provides a cost-effective, flexible, and easy-to-use platform for rapid prototyping and proof-of-concept development.

Microcontroller

The NUCLEO-F401RE is based on the STM32F401RET6 microcontroller, a 32-bit ARM Cortex-M4 processor with floating-point unit (FPU) and DSP instructions. The microcontroller operates at a frequency of up to 84 MHz and features

512 KB of Flash memory

96 KB of SRAM

32 KB of instruction cache

64 KB of data cache

Key Features

Microcontroller Unit (MCU)STM32F401RET6, 32-bit ARM Cortex-M4 processor

Operating Frequency

Up to 84 MHz

Memory

+ Flash512 KB
+ SRAM96 KB
+ Instruction Cache32 KB
+ Data Cache64 KB

Peripherals

+ 3 x SPI

+ 3 x I2C

+ 2 x I2S

+ 2 x USART

+ 1 x UART

+ 1 x CAN

+ 1 x USB OTG FS

+ 12-bit ADC with 16 channels

+ 2 x 12-bit DAC

+ 2 x TIM (General-purpose timer)

+ 1 x RTC (Real-time clock)

Power Supply

+ USB connector for power supply and communication

+ ST-LINK/V2-1 debugger/programmer onboard

+ Selection mode for power supply (USB or external)

Expansion Capabilities

+ Arduino Uno V3 connectivity

+ STMod+ connectors (2) for expansion modules

+ Morpho connectors (2) for expansion modules

Debugging and Programming

+ Onboard ST-LINK/V2-1 debugger/programmer

+ USB connector for programming and debugging

+ SWD (Serial Wire Debug) interface

Operating Temperature

-40C to 85C

Dimensions

67.6 mm x 53.4 mm

Functionality

The NUCLEO-F401RE is designed to provide a versatile platform for developing a wide range of applications, including

IoT devices

Sensor-based systems

Robotics and automation

Industrial control systems

Medical devices

Consumer electronics

Advantages

Cost-effective development platform

Easy-to-use and flexible design

Fast development and prototyping

Comprehensive set of peripherals and interfaces

Onboard debugging and programming capabilities

Target Audience

The NUCLEO-F401RE is suitable for

Embedded system developers

IoT developers

Hobbyists and makers

Students and researchers

Professionals in robotics, automation, and industrial control systems

Overall, the NUCLEO-F401RE provides a powerful and feature-rich platform for developing innovative IoT and embedded systems applications.

Pin Configuration

  • STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board Pinout Documentation
  • The NUCLEO-F401RE is a popular development board from STMicroelectronics, featuring the STM32F401RE microcontroller. This documentation provides a detailed explanation of each pin on the board, helping users understand the functionality and connectivity of the various pins.
  • Arduino-compatible headers:
  • The NUCLEO-F401RE board features two Arduino-compatible headers, labeled as D0 to D15 and A0 to A5. These headers are used for connecting external components, such as sensors, actuators, and shields.
  • Digital Pins (D0-D15):
  • 1. D0 (PA0): Digital input/output pin, can be used as a GPIO or for UART_TX.
  • 2. D1 (PA1): Digital input/output pin, can be used as a GPIO or for UART_RX.
  • 3. D2 (PA2): Digital input/output pin, can be used as a GPIO or for USART_TX.
  • 4. D3 (PA3): Digital input/output pin, can be used as a GPIO or for USART_RX.
  • 5. D4 (PA4): Digital input/output pin, can be used as a GPIO or for SPI_CS.
  • 6. D5 (PA5): Digital input/output pin, can be used as a GPIO or for SPI_CLK.
  • 7. D6 (PA6): Digital input/output pin, can be used as a GPIO or for SPI_MOSI.
  • 8. D7 (PA7): Digital input/output pin, can be used as a GPIO or for SPI_MISO.
  • 9. D8 (PB0): Digital input/output pin, can be used as a GPIO or for I2C_SCL.
  • 10. D9 (PB1): Digital input/output pin, can be used as a GPIO or for I2C_SDA.
  • 11. D10 (PB2): Digital input/output pin, can be used as a GPIO or for PWM.
  • 12. D11 (PB3): Digital input/output pin, can be used as a GPIO or for PWM.
  • 13. D12 (PB4): Digital input/output pin, can be used as a GPIO or for USART_TX.
  • 14. D13 (PB5): Digital input/output pin, can be used as a GPIO or for USART_RX.
  • 15. D14 (PB6): Digital input/output pin, can be used as a GPIO or for I2S_WS.
  • 16. D15 (PB7): Digital input/output pin, can be used as a GPIO or for I2S_CK.
  • Analog Pins (A0-A5):
  • 1. A0 (PA0_ADC0): Analog input pin, connected to ADC channel 0.
  • 2. A1 (PA1_ADC1): Analog input pin, connected to ADC channel 1.
  • 3. A2 (PA2_ADC2): Analog input pin, connected to ADC channel 2.
  • 4. A3 (PA3_ADC3): Analog input pin, connected to ADC channel 3.
  • 5. A4 (PA4_ADC4): Analog input pin, connected to ADC channel 4.
  • 6. A5 (PA5_ADC5): Analog input pin, connected to ADC channel 5.
  • Other Pins:
  • 1. VIN: Input voltage pin, can be used to power the board (5V-12V).
  • 2. 5V: 5V output pin, regulated voltage output from the onboard regulator.
  • 3. 3V3: 3.3V output pin, regulated voltage output from the onboard regulator.
  • 4. GND: Ground pin, used for circuit grounding.
  • 5. RESET: Reset pin, active-low reset input for the microcontroller.
  • 6. SWD: Serial Wire Debug interface, used for programming and debugging the microcontroller.
  • 7. USART_TX and USART_RX: Serial communication pins, used for UART communication.
  • 8. USB_FS: USB Full-Speed interface, used for USB communication.
  • 9. EN: Enable pin, active-high enable input for the onboard regulator.
  • 10. LD2: User LED, connected to the microcontroller's GPIO pin.
  • 11. STLINK: ST-Link debug interface, used for programming and debugging the microcontroller.
  • Micro-USB connector:
  • The micro-USB connector is used for USB communication and can be used for programming and debugging the microcontroller.
  • Power supply:
  • The board can be powered through the VIN pin (5V-12V) or via the micro-USB connector (5V). The onboard regulator supplies 5V and 3.3V output voltages.
  • When connecting pins, ensure that the correct voltage levels are used, and appropriate resistors or protection circuits are added to prevent damage to the board or external components.

Code Examples

STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board
Overview
The STMicroelectronics NUCLEO-F401RE is a STM32 Nucleo-64 development board that features the STM32F401RET6 microcontroller. This board provides an affordable and flexible way to evaluate and develop applications using the STM32F401RE MCU. The NUCLEO-F401RE board is equipped with an on-board ST-LINK/V2-1 debugger/programmer, which enables easy programming and debugging of the MCU.
Key Features
STM32F401RET6 microcontroller with 512KB flash memory and 96KB SRAM
 On-board ST-LINK/V2-1 debugger/programmer
 Arduino Uno V3 connectivity support
 Two types of extension resources: Arduino Uno V3 and STMod+
 Three LEDs: power, USB communication, and user LED
 Two push-buttons: user and reset
 USB device with Micro-B connector
Code Examples
### Example 1: Blinking LED
This example demonstrates how to use the NUCLEO-F401RE board to blink the on-board user LED.
Hardware Requirements
NUCLEO-F401RE board
 USB cable for programming and debugging
Software Requirements
STM32CubeMX software for generating code and configuring the MCU
 Keil Vision IDE or other compatible IDE for compiling and debugging the code
Code
```c
#include "stm32f4xx_hal.h"
int main(void)
{
  HAL_Init();
// Initialize the user LED pin as output
  GPIO_InitTypeDef GPIO_InitStruct;
  GPIO_InitStruct.Pin = GPIO_PIN_5;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
while (1)
  {
    // Toggle the user LED
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
   HAL_Delay(500); // 500ms delay
  }
}
```
### Example 2: Reading Analog Input
This example demonstrates how to use the NUCLEO-F401RE board to read an analog input from a potentiometer connected to one of the ADC channels.
Hardware Requirements
NUCLEO-F401RE board
 Potentiometer (e.g., 10k)
 Breadboard and jumper wires for connecting the potentiometer to the board
Software Requirements
STM32CubeMX software for generating code and configuring the MCU
 Keil Vision IDE or other compatible IDE for compiling and debugging the code
Code
```c
#include "stm32f4xx_hal.h"
int main(void)
{
  HAL_Init();
// Initialize the ADC channel
  ADC_HandleTypeDef hadc1;
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;
  hadc1.Init.ContinuousConvMode = DISABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.NbrOfDiscConversion = 0;
  hadc1.Init.NbrOfConversion = 1;
  hadc1.Init_ConvertMode = ADC_CONVERTMODE_SINGLE;
  HAL_ADC_Init(&hadc1);
while (1)
  {
    // Read the analog input from the potentiometer
    uint16_t adc_value = HAL_ADC_GetValue(&hadc1);
    printf("ADC value: %d
", adc_value);
HAL_Delay(100); // 100ms delay
  }
}
```
Note: In this example, the potentiometer is assumed to be connected to channel 1 of the ADC (PA1 pin). The ADC is configured to use a clock prescaler of 2, 12-bit resolution, and single-conversion mode. The `HAL_ADC_GetValue()` function is used to read the ADC value, which is then printed to the console.
These examples demonstrate the basic usage of the NUCLEO-F401RE board and its capabilities. By using the STM32CubeMX software and the Keil Vision IDE, you can explore more features and peripherals of the board, such as UART communication, I2C and SPI interfaces, and more.