
void MX_ADC3_Init(void) { ADC_MultiModeTypeDef multimode = {0}; ADC_ChannelConfTypeDef sConfig = {0}; hadc3.Instance = ADC3; hadc3.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; hadc3.Init.Resolution = ADC_RESOLUTION_12B; hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc3.Init.GainCompensation = 0; hadc3.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc3.Init.LowPowerAutoWait = DISABLE; hadc3.Init.ContinuousConvMode = ENABLE; hadc3.Init.NbrOfConversion = 1; hadc3.Init.DiscontinuousConvMode = DISABLE; hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc3.Init.DMAContinuousRequests = DISABLE; hadc3.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc3.Init.OversamplingMode = DISABLE; if (HAL_ADC_Init(&hadc3) != HAL_OK) { Error_Handler(); } /** Configure the ADC multi-mode */ multimode.Mode = ADC_MODE_INDEPENDENT; if (HAL_ADCEx_MultiModeConfigChannel(&hadc3, &multimode) != HAL_OK) { Error_Handler(); } /** Configure Regular Channel */ sConfig.Channel = ADC_CHANNEL_1; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; sConfig.OffsetNumber = ADC_OFFSET_NONE; sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN ADC3_Init 2 */ /* USER CODE END ADC3_Init 2 */ } HAL_ADCEx_Calibration_Start(&hadc3, ADC_SINGLE_ENDED); HAL_ADC_Start(&hadc3); 仿真时,查看DR寄存器,只有在开始运行仿真时转换一次就不再转换,改成外部TIM触发也只是能转换一次,是哪里配置错误吗? |
stm32G474RBT3的flash擦除寿命是多少?
STM32H743内部温度传感器读数错误
STM32G431K COMP 比较器下降沿中断
STSPIN32G4内部驱动电压输出问题
STM32G431 用MCSDK5.4.8 进行PMSM永磁同步电机FOC控制,转速上升到某一值(3500rpm)无法继续上升,上不去
STM32G431CBU6 驱动STDRIVE101,自己配置的PWM互补输出,死区时间为500ns,为什么STDRIVE101的报警灯会亮,CP接10K接地了,scref接的+5V
STM32G474, I2C设备地址,总出现多余地址0x20,是什么原因?
关于STM32G474 双BANK的测试问题
STM32G473CBUx的模拟地
最近在做单极倍频SPWM
可能调试模块没有做更新,你也没有啥操作。
保持现有 配置的前提下,你这样试试,先软件启动ADC,然后查询接收,再看看结果。
int main(void)
{
。。。。。。
。。。。。。
uint8_t i=0;
HAL_ADC_Start(&hadc1);
while (1)
{
if (HAL_ADC_PollForConversion(&hadc1, 888) != HAL_OK)
{
Error_Handler();
}
AdcResulti++] = HAL_ADC_GetValue(&hadc1);
if(i==9) i=0;
} //while(1)
} //main