Skip to main content

Posts

Blinky project for Arduino UNO Board

Steps to Blink LED present on Arduino UNO board. 1. Open Arduino UNO software. 2. Go to File> Examples> 01.Basic> Blink (It will open new window) 3. Connect Arduino UNO board with PC 4. Select board if not done to Arduino UNO\ 5. Verify the Blink Code, in Output window it will show as below: 6. Upload code to board using Right Arrow key button (after upload pop will comes as done uploading) 7. LED present on Arduino UNO board will start blinking with delay of 1 sec specified in code.

Enabling RTOS in STM32F407VET6

In STM32CubeIDE we can enable RTOS using following steps: Configuration 1. In Pinout & Configuration, go to Middleware and Software Packs > FREERTOS 2. Configure Interface Mode as CMSIS_V1 or CMSIS_V2 3. Start adding OS Tasks, change Task name and Entry function.     Example:    Manual Code 1. In main.c file > main() function instead of writing in while 1 loop, we need to write actual code in    Tasks generated. While 1 loop will not be reached as  osKernelStart(); will take over. 2. LED Blinking code can be executed from TASK which we added Example code: /* USER CODE BEGIN Header_Task2_ init */ /** * @brief Function implementing the Task2 thread. * @ param argument: Not used * @ retval None */ /* USER CODE END Header_Task2_ init */ void Task2_init ( void const * argument) { /* USER CODE BEGIN Task2_ init */ /* Infinite loop */ for (;;) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6); HAL_Delay(200);      //osDela...

Random number generation in STM32F407VET6

 For RNG generation in STM32F407VET6 board follow below steps: Configuration: 1. In Pinout and configuration, in security > RNG Mode & Configuration, Mode should be activated. 2. With change in point 1, tool will prompt to change clock configuration. Use automatic clock configuration fix given by tool to adjust the clock values. Manual Code:  In main.c file, we need to call function to get random number as shown below: /* USER CODE BEGIN WHILE */ while (1) { HAL_RNG_GetRandomNumber(&hrng); HAL_Delay(200); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } Variable hrng is already declared when code was generated.  RNG result will be as shown in below image:

Blinky Project for STM32F407VET6 Board - Manual Code

 After Configuration and Project Setup we need to add below code in order to blink the LED. In main.c file, in mai n() function we need to add /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6); HAL_Delay(200); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }   Where,       HAL_GPIO_TogglePin - Function to Toggle Pin/LED. HAL_Delay - Delay function, here delay of 200msec is given. Save, It will prompt for code generation, then Project>Build All. Debug(elf/hex) file will be generated. For flashing/Debugging,  1. Connect USB and ST Link V2 Debugger 2. Use option Run>Debug As>1 STM32 C/C++ Application for programming/debugging. If ST Link connection is not done then following Error will be prompted:

Blinky Project for STM32F407VET6 Board - Configuration/Setup

 Follow below steps to create a basic LED blinking project for STM32F407VET6 board: 1. Create File>New>STM32 Project 2. Select Commercial Part number as STM32F407VET6, select 1st part number in search window. 3. In Next Tab provide project name (e.g. BlinkLED), keep other parameters as it is. 4. In Next Tab keep parameters as default, and Finish the setup.  Pinout & Configuration: 1. System Core> SYS Select Debug option as Serial Wire 2. System Core> RCC Select High Speed Clock(HSE) & Low Speed Clock(LSE) as Crystal/Ceramic Resonator 3. In Pinout view, select PA6 as GPIO_Output 4. And in  System Core>GPIO Select GPIO output level as High 5. Go to Clock Configuration and make HCLK clock as 168Mhz (Highest clock supported by board).

Connection of STM32F407VET6 Board with ST-Link V2 Debugger/Programmer

 STM32F407VET6 Board Pin out: ST-Link V2 Pin out: Connection Diagram:

Debugging STM32F407VET6 Dev Board

 1. Hardware require to debug STM32F407VET6 board: ST-Link V2: Click here to purchase ST-Link V2 2. Software Required to flash the binaries/hex files: Click here to download STM32CubeProg Click here to download STM32CubeIDE