野火STM32单片机的调试问题
就是使用了GPS模块是正常使用,但是又要用到AD转换模块,代码加进去就直接白屏了,然后注释掉ADC_INit有可以继续使用,感觉也没啥问题,没有引脚冲突,为什么会这样?

野火STM32单片机的调试问题
就是使用了GPS模块是正常使用,但是又要用到AD转换模块,代码加进去就直接白屏了,然后注释掉ADC_INit有可以继续使用,感觉也没啥问题,没有引脚冲突,为什么会这样?

关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言问题分析 经过查看代码和现象,可以初步判断是AD转换模块引起的问题。有以下可能原因:
ADC_HandleTypeDef hadc;
ADC_ChannelConfTypeDef sConfig;
void ADC_Init(void)
{
/* Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion) */
hadc.Instance = ADC1;
hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
hadc.Init.Resolution = ADC_RESOLUTION_12B;
hadc.Init.ScanConvMode = DISABLE;
hadc.Init.ContinuousConvMode = DISABLE;
hadc.Init.DiscontinuousConvMode = DISABLE;
hadc.Init.NbrOfDiscConversion = 0;
hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc.Init.NbrOfConversion = 1;
hadc.Init.DMAContinuousRequests = DISABLE;
hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
if (HAL_ADC_Init(&hadc) != HAL_OK)
{
Error_Handler();
}
/* Configure the selected ADC channel */
sConfig.Channel = ADC_CHANNEL_15;
sConfig.Rank = 1;
sConfig.SamplingTime = ADC_SAMPLETIME_28CYCLES;
sConfig.Offset = 0;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
}
参考链接 1. STM32 ADC初始化配置 2. STM32中断处理程序编写 3. STM32F4xx HAL Driver中ADC的初学测试