yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
STM32-BoardCar📖
0. Get started quickly
  • 0.ReadMe
  • 1. Installation Instructions
  • 2. Version configuration
  • 3. Smart car installation video
  • 4. Precautions for use
1. Introduction to STM32 development board
  • 1. Learn about STM32
  • 2. Introduction to STM32 development board
  • 3. Development board pin assignment
  • 4. Introduction to HAL library and LL library
2. Setting up and using the development environment
  • 1. Common development tools
  • 2. STM32CubeMX Install - Use
  • 3. STM32CubeIDE Install - Use
  • 4. Common Driver Installation
  • 5. Program download and simulation
  • 6. Engineering experience and migration
3. Development board basic tutorial
  • 1. RGB searchlight (GPIO)
  • 2. Buzzer control (GPIO)
  • 3. Button control (EXTI)
  • 4. Serial communication (UASRT)
  • 5. Voltage detection (ADC)
  • 6. Internal temperature sensor(ADC)
  • 7. Independent watchdog(IWDG)
  • 8. Window watchdog(WWDG)
  • 9. Basic timer (TIM6)
  • 10. Universal Timer (TIM3)
  • 11. Advanced timers (TIM1)
  • 12. I2C Communication (IIC)
  • 13. Off-chip Flash (SPI)
  • 14. On-chip Flash (Flash)
  • 15. DMA:USART
  • 16. DMA:SPI
  • 17. DMA:I2C
  • 18. USB communication
  • 19. USB analog U disk
  • 20. FreeRTOS
4. Car expansion tutorial
  • 1. Servo control
  • 2. Basic use of ultrasonic steering gear gimbal
  • 3. Motor control
  • 4. OLED display light sensitivity value
  • 5. Infrared sensor
  • 6. Four-way tracking module
  • 7. Infrared remote control
  • 8. Ultrasonic ranging
  • 9. PS2 controller test
  • 10.K230 Vision Module
  • 11.AI voice interaction integration module
5. Robot car tutorials
  • 1. Car line patrol
  • 2. Ultrasonic follow
  • 3. Ultrasonic obstacle avoidance
  • 4. Ultrasonic obstacle avoidance (servo gimbal version)
  • 5. Infrared sensor obstacle avoidance
  • 6. Infrared remote control
  • 7. PS2 handle remote control
  • 8.K230 face tracking on PTZ
  • 9.K230 color tracking
  • 10.K230 Color Line Patrol
  • 11.K230 QR code command
  • 12.K230 machine code tracking
  • 13.K230 road sign indication action (voice)
  • 14.K230 color response (voice)
  • 15.K230 gesture control (voice)
  • 16.K230 Rock-Paper-Scissors Game (Voice)
6. Operation video
  • 1-How to install STM32CubeIDE software
  • 2-How to create Demo project
  • 3-How to download code into STM32 robot car
  • 4-How to open and compile a code file for STM32
  • 5-About IR control and Charge battery
Download
  • Code
  • SCH
  • Software File
  • STM32 Chip DataSheet
  • Installation manual
Download ZIP

Welcome to STM32-BoardCar repository

7. Independent watchdog(IWDG)

Independent watchdog

Independent watchdog1. Software-Hardware2. Brief principle1. Hardware schematic diagram2. Physical connection diagram3. Control principle3. Project configuration1. Description2. Pin configuration4. Main functions1. User function2. HAL library function analysis5. Experimental phenomena

Demonstration in this tutorial: Combining the serial port (UASRT1) and button functions to demonstrate the Independent Watchdog (IWDG) timeout reset function.

1. Software-Hardware

  • STM32F103CubeIDE

  • STM32 Robot Development Board

    USART, IWDG: chip internal peripherals

    Button: onboard

  • Type-C data cable or ST-Link

    Download programs or simulate the development board

2. Brief principle

1. Hardware schematic diagram

image-20231030214729855

2. Physical connection diagram

image-20231030214808689

3. Control principle

By using the button to reset the count value of the independent watchdog (IWDG), the dog feeding function is realized.

  • Watchdog

STM32F103ZET6 has two built-in watchdogs (independent watchdog and window watchdog), which are mainly used for system fault detection and recovery.

WatchdogFunction
Independent WatchdogUsed to detect whether the system is running normally
Window WatchdogUsed to detect system failures
  • Independent watchdog

The independent watchdog (IWDG) is driven by a dedicated low-speed clock (LSI) and remains effective even if the main clock fails;

When the system does not feed the dog (reset the count value) within a certain period of time, the independent watchdog will trigger a reset operation to restart the system.

The main function of the independent watchdog is to prevent the system from entering an infinite loop or infinite delay and other fault states during operation, and to prevent the system from being unresponsive or crashing for a long time.
  • Independent watchdog feature

    • Free running down counter
    • After the watchdog is activated, a reset is generated when the counter counts to 0x000
    • Clock is provided by independent RC oscillator (can operate in stop and standby modes)

image-20231030220806595

  • Watchdog Timeout: 40kHz input clock (LSI)
Prescaler coefficientPR[2:0]Minimum time (ms): RL[11:0]=0x000Maximum time (ms): RL[11:0]=0xFFF
/400.1409.6
/810.2819.2
/1620.41638.4
/3430.83276.8
/6441.66553.6
/12853.213107.2
/2566 or 76.426214.4
xxxxxxxxxx
The prescaler coefficient set in the tutorial is 64, and the reload value is 64
T Timeout(s)=4∗2PR∗ReloadLSI=64∗62540000=1s

3. Project configuration

Project configuration: Prompt configuration options during STM32CubeIDE project configuration

1. Description

Omitted project configuration part: New project, chip selection, project configuration, SYS of pin configuration, RCC configuration, clock configuration and project configuration content

The project configuration part that is not omitted is the key point that needs to be configured in this tutorial.

xxxxxxxxxx
Please refer to [2. Development environment construction and use: STM32CubeIDE installation and use] to understand how to configure the omitted parts of the project.

2. Pin configuration

  • Configure specified pin function

You can directly select the corresponding pin number in the pin view, and the corresponding options will appear when you left-click the mouse.

image-20231030222902233

  • GPIO

image-20231030223142120

  • IWDG

image-20231030223012316

  • USART

image-20231030223255304

image-20231030223300746

  • Advanced Settings

image-20231030223412662

  • Generate code

image-20231030145217688

4. Main functions

It mainly introduces the functional code written by the user. For detailed code, you can open the project file provided by us yourself and enter the Bsp folder to view the source code.

1. User function

Function: KeyX_is_Press

Function prototypeuint8_t Key1_is_Press(void)
Function descriptionDetect whether the button is pressed
Input parametersNone
Output parametersKey status: KEY_PRESS (1), KEY_RELEASE (0)
xxxxxxxxxx
Key2_is_Press and Key3_is_Press functions have the same function

Function: KeyX_Long_Press

Function prototypeuint8_t Key1_Long_Press(uint16_t timeout)
Function descriptionDetect button long press status
Input parametersLong press time
Output parametersKey status: KEY_PRESS (1), KEY_RELEASE (0)
xxxxxxxxxx
Key3_Long_Press and Key2_Long_Press functions have the same function

Function: Key1_State

Function prototypeuint8_t Key1_State(uint8_t mode)
Function descriptionRead key status
Input parametersMode: 0 means always returning 1, 1 means always returning 0
Output parametersKey status: KEY_PRESS (1), KEY_RELEASE (0)
xxxxxxxxxx
Key2_State and Key3_State functions have the same function

2. HAL library function analysis

The HAL library functions that have been introduced in the previous tutorial will not be introduced again in the tutorial!

xxxxxxxxxx
If you want to find the HAL library and LL library function analysis involved in the entire tutorial, you can view the documents in the folder [8. STM32 Manual: STM32F1_HAL Library and LL Library_User Manual]

Function: HAL_IWDG_Init

Function prototypeHAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg)
Function descriptionInitialize IWDG peripheral parameters
Input parametershiwdg: IWDG handle address
Return valueHAL status value: HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT

Function: HAL_IWDG_Refresh

Function prototypeHAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg)
Function descriptionRefresh IWDG (feed the dog)
Input parametershiwdg: IWDG handle address
Return valueHAL status value: HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT

5. Experimental phenomena

After successfully downloading the program, press the RESET button on the development board to open the serial port debugging assistant to observe the phenomenon!

xxxxxxxxxx
For program download, please refer to [2. Development environment construction and use: program download and simulation]

Phenomenon:

When the program is run for the first time, "**** IWDG Test Start *******" will be printed;

If you do not press the KEY1 key, the serial port debugging assistant will print the message "IWDG no no no reload!!!";

If the KEY1 key is pressed, the serial port debugging assistant will print the message "Refreshes the IWDG!!!".

image-20231102184529728

Internal temperature sensor(ADC)
Window watchdog(WWDG)

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文