|
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触发也只是能转换一次,是哪里配置错误吗? |
STM32F103RCT6断电以后,ADC会漏电
STSPIN32G4 STM32G431VBTx CAN FIFO发送数据帧随机变远程帧
STM32G473,PA3导致定时器定时误差过大
请问 使用MC SDK6.4版本,芯片选的时STM32G431CBUx系列,再配置电流采样时候,选择片内运放,外部增益网络,为啥会报错呀
STM32H7A3 怎样配置MDMA的硬件触发MDMA_REQUEST_DMA1_Stream0_TC将数据再次转运
求simulink开发STM32的支持包离线版本
stm32 can偶现导致其他设备发送数据异常
STM32H7A3RGT6 ADC 8位采样速度只能达到3.5MSPS达不到数据手册上的7MSPS ?
MCSDK6.4开环能转,速度环一动不动
用mcsdk6.4工具使用ElectronicSpeedControl_ESC-G4生成的代码编译没错误但是开机就卡死怎么解决?
微信公众号
手机版
可能调试模块没有做更新,你也没有啥操作。
保持现有 配置的前提下,你这样试试,先软件启动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