โดยค่าเริ่มต้น, หลังจาก the @ref HAL_ADC_Init() และเมื่อ the state เป็น @ref HAL_ADC_STATE_RESET ทุก callbacks ถูกเซ็ตไปเป็น the corresponding weak functions: ตัวอย่าง @ref HAL_ADC_ConvCpltCallback(), @ref HAL_ADC_ErrorCallback(). มีข้อยกเว้นสำหรับ MspInit and MspDeInit functions ที่ถูกรีเซ็ตไปเป็น the legacy weak functions ใน the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() เฉพาะเมื่อ callbacks เหล่านี้เป็น null (ไม่ได้รีจีสเตอร์ไว้ก่อน).
ถ้า MspInit or MspDeInit ไม่เป็น null, the @ref HAL_ADC_Init()/ @ref HAL_ADC_DeInit() จะเก็บและใช้ the user MspInit/MspDeInit callbacks (รีจีสเตอร์ไว้ก่อน) ไม่ว่า the state เป็นอย่างไร.
Callbacks สามารถถูก registered/unregistered ใน @ref HAL_ADC_STATE_READY state เท่านั้น. ยกเว้น MspInit/MspDeInit functions ที่สามารถถูก registered/unregistered ใน @ref HAL_ADC_STATE_READY or @ref HAL_ADC_STATE_RESET state, ดังนั้น registered (user) MspInit/DeInit callbacks สามารถถูกใช้ในระหว่าง the Init/DeInit.
ดังนั้น, the user ก่อนอื่นรีจีสเตอร์ the MspInit/MspDeInit user callbacks โดยใช้ @ref HAL_ADC_RegisterCallback() ก่อนการเรียก @ref HAL_ADC_DeInit() or @ref HAL_ADC_Init() function.
เมื่อ the compilation flag USE_HAL_ADC_REGISTER_CALLBACKS ถูกเซ็ตเป็น 0 หรือไม่ได้กำหนด, the callback registration feature ไม่มีให้ใช้งานและทุก callbacks ถูกเซ็ตไปเป็น the corresponding weak functions.