你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
wenyangzeng 发表于 2019-6-28 10:02 ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 1,ADC_SampleTime_144Cycles); ADC_RegularChannelConfi ...
hh748960295 发表于 2019-6-28 11:16 stm32L431里是不是这么写? ADC_ChannelConfTypeDef sConfig;
craft 发表于 2019-6-28 10:25 还能这么玩
wenyangzeng 发表于 2019-6-28 13:19 sConfig.Channel = ADC_CHANNEL_3; sConfig.Rank = ADC_REGULAR_RANK_1;
hh748960295 发表于 2019-6-28 16:14 这个函数在stm32L里是不是就对应 HAL_ADC_ConfigChannel(&AdcHandle, &sConfig); ?
wenyangzeng 发表于 2019-6-28 16:23 楼主应该把2楼ST官方代码消化消化呀
stm32L431里是不是这么写?
ADC_ChannelConfTypeDef sConfig;
/* ### - 3 - Channel configuration ######################################## */
sConfig.Channel = ADC_CHANNEL_6|ADC_CHANNEL_7; /* Sampled channel number */
sConfig.Rank = ADC_REGULAR_RANK_1; /* Rank of sampled channel number ADCx_CHANNEL */
sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5; /* Sampling time (number of clock cycles unit) */
sConfig.SingleDiff = ADC_SINGLE_ENDED; /* Single-ended input channel */
sConfig.OffsetNumber = ADC_OFFSET_NONE; /* No offset subtraction */
sConfig.Offset = 0; /* Parameter discarded because offset correction is disabled */
HAL_ADC_ConfigChannel(&AdcHandle, &sConfig);
还有我不想用dma,直接用轮询模式不行吗,?
???那该怎么搞,急求。。。需求很简单啊,就是stm32L431采集三个传感器的值,这仨传感器都是接AD口的、
sConfig.Channel = ADC_CHANNEL_3;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_12CYCLES_5;
sConfig.SingleDiff = ADC_SINGLE_ENDED;
sConfig.OffsetNumber = ADC_OFFSET_NONE;
sConfig.Offset = 0;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sConfig.Channel = ADC_CHANNEL_6;
sConfig.Rank = ADC_REGULAR_RANK_2;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sConfig.Channel = ADC_CHANNEL_7;
sConfig.Rank = ADC_REGULAR_RANK_3;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
这个函数在stm32L里是不是就对应 HAL_ADC_ConfigChannel(&AdcHandle, &sConfig); ?
这是我定义的数组,然后读入值,再打印。完全看不懂啊,这个数组只是一个通道的值吧???第二个通道的怎么获得?
C:\Users\User\Desktop\360截图16591013112120106.png
楼主应该把2楼ST官方代码消化消化呀
嗯呢,看的那个代码。他定义的一个数组,
#define ADC_CONVERTED_DATA_BUFFER_SIZE ((uint32_t) 32) /* Size of array aADCxConvertedData[] */
static uint16_t aADCxConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE];
然后把值写进去,
if (HAL_ADC_Start_DMA(&AdcHandle,
(uint32_t *)aADCxConvertedData,
ADC_CONVERTED_DATA_BUFFER_SIZE
) != HAL_OK)
{
//Error_Handler();
}
但是我现在不知道怎么从这个数组把俩通道上的值拿到,。