【发布时间】:2020-06-01 15:30:14
【问题描述】:
我正在使用 ST32 I-cube 示例代码并尝试使用以下代码启动 ADC:
ADC_HandleTypeDef hadc;
void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
if(hadc->Instance==ADC){
GPIO_InitTypeDef GPIO_InitStruct={0};
/*##-1- Enable peripherals and GPIO Clocks #################################*/
/* Enable GPIO clock ****************************************/
__HAL_RCC_GPIOA_CLK_ENABLE();
/* ADC1 Periph clock enable */
/*##- 2- Configure peripheral GPIO #########################################*/
/* ADC3 Channel8 GPIO pin configuration */
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
.........
}
编译器在行上给我一个“不同指针类型的比较缺少强制转换”的警告:
if(hadc->Instance==ADC){
我做错了什么?
感谢您的帮助!
【问题讨论】:
-
hadc->Instance和ADC有哪些类型?
-
您似乎同时拥有一个名为
hadc的全局变量和一个本地变量? -
hadc->Instance的类型为ADC_TypeDef *,据记载它是寄存器基地址。ADC是否有可能实际引用特定的 ADC 寄存器(例如,ADC1)?