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

8. Window watchdog(WWDG)

Window watchdog

Window watchdog1. Software-Hardware2. Brief principle1. Hardware schematic diagram2. Physical connection diagram3. Control principle3. Project configuration1. Description2. Pin configuration4. Main functionsHAL library function analysis5. Experimental phenomena

Demonstration in this tutorial: Combining onboard LEDs (LED1 and LED2) to demonstrate the Window Watchdog (WWDG) hardware fault detection function.

1. Software-Hardware

  • STM32F103CubeIDE

  • STM32 Robot Development Board

    WWDG: chip internal peripherals

    LED1, LED2: onboard

  • Type-C data cable or ST-Link

    Download programs or simulate the development board

2. Brief principle

1. Hardware schematic diagram

image-20231030230101815

2. Physical connection diagram

image-20231030230232152

3. Control principle

Use window watchdog to detect program running status.

  • GPIO output

By controlling the high and low levels of the LED light pins, the color displayed by the LED light is controlled.

LED: high level on, low level off

LED (schematic name)Control pinFunction
LED1PG14Control LED1 on and off
LED2PG15Control LED2 on and off
  • 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
  • Window Watchdog

The window watchdog (WWDG) is driven by the clock obtained by dividing the APB1 clock and configures the time window to detect abnormal late or premature operations of the application.

Window WatchdogStatus
When the count value > the upper limit of the window, feed the dogReset
When the upper limit of the window > the count value > the lower limit of the window, feed the dogDo not reset
Count value < window lower limit valueReset
xxxxxxxxxx
The main function of the window watchdog is to monitor the working status of the system and prevent deadlocks or infinite loops caused by software errors or unexpected events.
  • Independent watchdog feature

    • Free running down counter

    • conditional reset

      • When the down counter is reloaded outside the window, a reset is generated
      • When the value of the down counter is less than 0x40, a reset is generated
    • If watchdog is enabled and interrupts are enabled

      • Early wake-up interrupt (EWI) is generated when the down counter equals 0x40, used to reload the counter to avoid WWDG reset

image-20231031122937384

  • Window watchdog timeout: PCLK1=36MHz

image-20231031122549080

WDGBMinimum timeoutMaximum timeout
0113us7.28ms
1227us14.56ms
2455us29.12ms
3910us58.25ms
xxxxxxxxxx
The frequency division number set in the tutorial is 8, the window value is 5F, and the count value is 7F.
TWWDG(ms)=TPCLK1∗4096∗2WDGTB∗(T[5:0]+1)

TWWDG: WWDG timeout time

TPCLK1: APB1 time interval in ms

Example: Counter decrement time (PCLK1=36MHz, frequency division number is 8)

TWWDG(ms)=TPCLK1∗4096∗2WDGTB∗(T[5:0]+1)=136000∗4096∗23∗(1)=0.910ms

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-20231030230840420

  • GPIO

image-20231031110754655

  • WWDG

image-20231031110832281

image-20231031110914010

  • NVIC

Modify interrupt priority

image-20231031110948484

  • Advanced Settings

image-20231031111006223

  • 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. **

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_WWDG_Init

Function prototypeHAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg)
Function descriptionInitialize WWDG peripheral parameters
Input parametershwwdg: WWDG handle address
Return valueHAL status value: HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT

Function: HAL_WWDG_MspInit

Function prototypevoid HAL_WWDG_MspInit(WWDG_HandleTypeDef* wwdgHandle)
Function descriptionInitialize the clock and NVIC of WWDG peripherals
Input parameterswwdgHandle: WWDG handle address
Return valueNone

Function: HAL_WWDG_IRQHandler

Function prototypevoid HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)
Function descriptionWWDG interrupt handling function
Input parametershwwdg: WWDG handle address
Return valueNone

Function: HAL_WWDG_Refresh

Function prototypeHAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg)
Function descriptionRefresh WWDG (feed the dog)
Input parametershwwdg: WWDG handle address
Return valueHAL status value: HAL_OK, HAL_ERROR, HAL_BUSY, HAL_TIMEOUT

Function: HAL_WWDG_EarlyWakeupCallback

Function prototypevoid HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
Function descriptionWindow watchdog wake-up interrupt processing callback function
Input parametershwwdg: WWDG handle address
Return valueNone

5. Experimental phenomena

After downloading the program successfully, press the RESET button of the development board and observe the development board phenomenon!

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

Phenomenon:

Feed the dog: LED2 goes off, LED1 flashes

The dog is not fed: LED1 goes out and LED2 flashes, indicating that the hardware watchdog is abnormal.

For experimental phenomena, you can see [Window Watchdog_Experimental Phenomenon.mp4]
Independent watchdog(IWDG)
Basic timer (TIM6)

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/中文