快速赋值初始化函数中的结构体

STM32手打一些初始化函数技巧
适合蓝桥杯比赛时用
突然发现的,自己感觉很省力,所以分享一下,知道的大佬别喷
如下:比如我们想初始化ADC,选好通道后,(时钟和GPIO的初始化是非常简单的,不讲了,其实GPIO的初始化也可以用相同方法)下面最烦的就是ADC_Init();对这个初始化函数中的结构体变量进行赋值,以前都是一个个打出来赋值,
现在我们在stm32f10x_adc.h中找到void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);这

void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); //³õʼ»¯
void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);

个函数声明,一般都是在对应的初始化函数下面,然后右击查找函数原型,就会看到
ADC_InitStruct->ADC_Mode = ADC_Mode_Independent;
/* initialize the ADC_ScanConvMode member /
ADC_InitStruct->ADC_ScanConvMode = DISABLE;
/
Initialize the ADC_ContinuousConvMode member /
ADC_InitStruct->ADC_ContinuousConvMode = DISABLE;
/
Initialize the ADC_ExternalTrigConv member /
ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
/
Initialize the ADC_DataAlign member /
ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right;
/
Initialize the ADC_NbrOfChannel member */
ADC_InitStruct->ADC_NbrOfChannel = 1;

我们发现,这里面已经对ADC_InitStruct结构体变量的常用值进行赋值过了,我们只要把这个整个结构体变量赋值的内容复制过去就好了,当然还要把箭头改成点,然后把一些不一样的量修改一下就好了,可以省下不少时间。

void ADC__Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
ADC_InitTypeDef ADC_InitStruct;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA,ENABLE);

GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_1;

GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStruct);

  ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;

/* initialize the ADC_ScanConvMode member /
ADC_InitStruct.ADC_ScanConvMode = DISABLE;
/
Initialize the ADC_ContinuousConvMode member /
ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
/
Initialize the ADC_ExternalTrigConv member /
ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
/
Initialize the ADC_DataAlign member /
ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;
/
Initialize the ADC_NbrOfChannel member */
ADC_InitStruct.ADC_NbrOfChannel = 1;
ADC_Init(ADC1,&ADC_InitStruct);

}

猜你喜欢

转载自blog.csdn.net/dbfy666/article/details/88094343
今日推荐