
使用的板子为NUCLEO-U575ZI-Q。 下面是初始化的代,请各位大佬解惑,困惑很久。 ADC_HandleTypeDef hadc1; void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_InitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; if (hadc->Instance == ADC1) { PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC; PeriphClkInit.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_HSI; if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) { // Error_Handler(); } /* Peripheral clock enable */ __HAL_RCC_ADC12_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /**ADC1 GPIO Configuration PA4 ------> ADC1_IN9 */ GPIO_InitStruct.Pin = GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } } static void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig = {0}; hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV8; hadc1.Init.Resolution = ADC_RESOLUTION_12B; hadc1.Init.GainCompensation = 0; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc1.Init.LowPowerAutoWait = DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.NbrOfConversion = 1; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc1.Init.DMAContinuousRequests = DISABLE; hadc1.Init.TriggerFrequencyMode = ADC_TRIGGER_FREQ_HIGH; hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; hadc1.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE; hadc1.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DR; hadc1.Init.OversamplingMode = DISABLE; if (HAL_ADC_Init(&hadc1) != HAL_OK) { Error_Handler(); } sConfig.Channel = ADC_CHANNEL_9; sConfig.Rank = ADC_REGULAR_RANK_1; sConfig.SamplingTime = ADC_SAMPLETIME_391CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; sConfig.OffsetNumber = ADC_OFFSET_NONE; sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { Error_Handler(); } if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK) { Error_Handler(); } } |
IAP升级跳转 APP跳转Boot 失败
使用touchgfx控件modalWindow,显示会有条纹。主控:U575+FMC+SSD1963+LCD_480x800,
stm32F723ZET6使用ADC捕获正弦波,adc采样频率过高导致主函数无法运行,要怎么优化?
在通配符加了几个中文字符,第一次能正常显示,第二次更新内容还是显示上一次的内容。想要再次更新中文内容需要显示一次长度超过中文内容的英文字符后才能再次跟新为中文。
ADC差分采样
STM32U575 按照历程配置了ADC,参考电压采用默认,Vrefe和VADDA短接,3.3V。ADC引脚有1.8v,读取的结果为0。
STM32U5G9J-DK2资源还是蛮少的
STM32F723ZET6使用ADC捕获标准正弦波并通过USB主动上报,正弦波重新拟合后存在凹陷峰?
stm32u595VJT6 PA5 SPI1_SCK(boot) 是什么意思
STM32U5 IWDG的提前唤醒中断无法在STOP模式下触发
比如VCAP,PDR_ON这些,具体参考芯片管脚布局,ADC外设的时钟。
另外,校准要放在启动ADC之前操作。
我也遇到这个问题了请问你最后怎么解决的