STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board
STMicroelectronics NUCLEO-F401RE STM32 Nucleo-64 Development Board
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.
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
Microcontroller Unit (MCU) | STM32F401RET6, 32-bit ARM Cortex-M4 processor |
Up to 84 MHz
+ Flash | 512 KB |
+ SRAM | 96 KB |
+ Instruction Cache | 32 KB |
+ Data Cache | 64 KB |
+ 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)
+ USB connector for power supply and communication
+ ST-LINK/V2-1 debugger/programmer onboard
+ Selection mode for power supply (USB or external)
+ Arduino Uno V3 connectivity
+ STMod+ connectors (2) for expansion modules
+ Morpho connectors (2) for expansion modules
+ Onboard ST-LINK/V2-1 debugger/programmer
+ USB connector for programming and debugging
+ SWD (Serial Wire Debug) interface
-40C to 85C
67.6 mm x 53.4 mm
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
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
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.
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.