Hi @xiangjun_rong ,
as you know, the code I'm running is based on the "lpadc_interrupt" example from the SDK.
Starting from there, I extended the example code by adding:
#define DEMO_LPADC_DO_OFFSET_CALIBRATION true // changed to true
This enables offset calibration. In MCUXpresso IDE the code looks like:

As you can see, the three lines of code that you provided are used in this example.
Running this code on LPCXpresso55S28 demo board with the input of ADC channel 0A (pin 4 of connector P19, i.e., pin 20 of MCU) held at 1/2 AVDD results in this histogram:

This doesn't look any better. In fact, the result on the demo board is worse as conversion results are shifted towards higher values away from the "correct" 1/2 full scale value 🤨.
Any idea why this is and what I could try next?
Thanks.
Best regards,
Daniel