"Type lvalue required as left operand of assignment" 分配函数指针时出错(不是 == 问题!)

"Type lvalue required as left operand of assignment" error when assigning function pointer (not == issue!)

我正在开发一个涉及使用函数指针的函数回调的嵌入式 C 项目。我清除了所有代码并创建了一个简单的示例,该示例会产生相关错误。我已经盯着这个看了一个多小时了,但仍然看不出我做错了什么。非常感谢任何帮助!

/* Callback function pointer type for ADC Sample Interrupt */
typedef void (*ADC_Callback_Func)(uint16_t);

/* ADC Timer interrupt callback function pointer */
ADC_Callback_Func ADC_CallbackFunction(uint16_t sample);

/* ADC Callback function */
void ADC_SampleReceived(uint16_t sample);

///////////////////////////////////////////////////////////////////////

int main(void)
{
    /* Initialize ADC Timer */
    ADC_CallbackFunction = &ADC_SampleReceived; //<-- Code Bombs here

    /* Infinite loop */
    while (1) {

    }
}

void ADC_SampleReceived(uint16_t sample)
{

}

同样,我在编译后收到的错误是:

"Type lvalue required as left operand of assignment"

在此代码中 ADC_CallbackFunction 不是函数指针。它是一个接受 uint16_t 和 returns 函数指针的函数。