Skip to content
STMicroelectronics Logo
Type to start searching
  • Table Of Contents
  • STM32 HAL/LL Drivers Documentation
  • Drivers Overview
  • STM32U5 HAL/LL Drivers Documentation
    • STM32U5 Drivers Overview
    • HAL Drivers
      • HAL Common Drivers
      • HAL ADC
      • HAL ADF
      • HAL AES
      • HAL COMP
      • HAL CORDIC
      • HAL CORTEX
      • HAL CRC
      • HAL CRS
      • HAL DAC
      • HAL DBGMCU
      • HAL DCACHE
      • HAL DCMI
      • HAL DMA2D
      • HAL DMA
      • HAL DSI
      • HAL EXTI
      • HAL FDCAN
      • HAL FLASH
      • HAL FMAC
      • HAL GFXMMU
      • HAL GFXTIM
      • HAL GPIO
      • HAL GPU2D
      • HAL GTZC
      • HAL HASH
      • HAL HCD
      • HAL I2C
      • HAL ICACHE
      • HAL IWDG
      • HAL JPEG
      • HAL LPTIM
      • HAL LTDC
      • HAL MDF
      • HAL MMC
      • HAL NOR
      • HAL OPAMP
      • HAL PCD
      • HAL PKA
      • HAL PSSI
      • HAL PWR
      • HAL Q
        • HAL Q Overview
        • HAL Q How to Use
        • HAL Q use cases
          • HAL Q use cases
            • Q Sequence Diagram
        • HAL Q APIs
      • HAL RAMCFG
      • HAL RCC
      • HAL RNG
      • HAL RTC
      • HAL SAI
      • HAL SD
      • HAL SDIO
      • HAL SMARTCARD
      • HAL SMBUS
      • HAL SPI
      • HAL SRAM
      • HAL SYSCFG
      • HAL TAMP
      • HAL TIM
      • HAL UART
      • HAL UCPD
      • HAL USART
      • HAL VREFBUF
      • HAL WWDG
      • HAL XSPI
    • LL Drivers
  • HAL Q use cases
    • Q Sequence Diagram

HAL Q use cases ¶

Q Sequence Diagram ¶

@startuml



hide footbox

participant "User Application" as part1

participant "System"           as part2

participant "Q Driver"         as part3

participant "PPP Driver"       as part4





group #GreenYellow System initialization

part1->part2 : HAL_Init()

part1->part2 : Configure system clock

end



group #LimeGreen PPP Node Building

    group #FFB133 PPP driver

        group #lightblue Mandatory

            part1->part4 : HAL_PPP_FillNodeConfig()

            note right : Create all nodes to be used within Q

        end

    end



    group #FFB133 Q Building

        group #lightblue Mandatory

            part1->part3 : HAL_Q_Init(..., <b>&HAL_PPP_{mode}_DescOps/HAL_PPP_DescOps)

            note right : Q initialization according to PPP descriptor operation constant

        end



        group #lightblue Mandatory

            part1->part4 : HAL_Q_InsertNode() / HAL_Q_InsertNode_Head() / HAL_Q_InsertNode_Tail()

            note right : this operation can be repeated according to the Q node number to be inserted

        end



        group #LightYellow Optional

            part1->part4 : HAL_Q_RemoveNode() / HAL_Q_RemoveNode_Head() / HAL_Q_RemoveNode_Tail()

            note right : this operation can be repeated according to the Q node number to be removed

        end



        group #LightYellow Optional

            part1->part4 : HAL_Q_ReplaceNode() / HAL_Q_ReplaceNode_Head() / HAL_Q_ReplaceNode_Tail()

            note right : this operation can be repeated according to the Q node number to be replaced

        end

        

        group #LightYellow Optional

            part1->part4 : HAL_Q_InsertQ() / HAL_Q_InsertQ_Head() / HAL_Q_InsertQ_Tail()

            note right : this operation can be repeated according to the source Q number to be inserted within destination Q

        end



        group #LightYellow Optional

            part1->part4 : HAL_Q_SetCircularLinkQ() / HAL_Q_SetCircularLinkQ_Head() / HAL_Q_SetCircularLinkQ_Tail()

            note right : this operation is need when the Q is linear and the application needs circular Q

        end



        group #LightYellow Optional

            part1->part4 : HAL_Q_ClearCircularLinkQ() 

            note right : this operation is need when the Q is circular and the application needs linear Q

        end

    end

end



@enduml

Functions called:

  • HAL_Q_Init()

  • HAL_Q_InsertNode()

  • HAL_Q_InsertNode_Head()

  • HAL_Q_InsertNode_Tail()

  • HAL_Q_RemoveNode()

  • HAL_Q_RemoveNode_Head()

  • HAL_Q_RemoveNode_Tail()

  • HAL_Q_ReplaceNode()

  • HAL_Q_ReplaceNode_Head()

  • HAL_Q_ReplaceNode_Tail()

  • HAL_Q_InsertQ()

  • HAL_Q_InsertQ_Head()

  • HAL_Q_InsertQ_Tail()

  • HAL_Q_SetCircularLinkQ()

  • HAL_Q_SetCircularLinkQ_Head()

  • HAL_Q_SetCircularLinkQ_Tail()

  • HAL_Q_ClearCircularLinkQ()

© Copyright 2025, STMicroelectronics.