vu32 LTR; vu32 SQR1; vu32 SQR2; vu32 SQR3; vu32 JSQR; vu32 JDR1; vu32 JDR2; vu32 JDR3; vu32 JDR4; vu32 DR; }
ADC_TypeDef;
ADC库函数
1、ADC_DeInit();
功能描述:将外设ADCx的全部寄存器重设为缺省值
例:
ADC_DeInit(ADC2);
2、ADC_Init();
功能描述:根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器
例: {
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 16; ADC_Init(ADC1, &ADC_InitStructure); }
ADC_InitStruct:指向结构ADC_InitTypeDef的指针,包含了指定外设ADC的配置信息
ADC_InitTypeDef: typedef struct {
u32 ADC_Mode;
FunctionalState ADC_ScanConvMode;
FunctionalState ADC_ContinuousConvMode; u32 ADC_ExternalTrigConv; u32 ADC_DataAlign; u8 ADC_NbrOfChannel; }
ADC_InitTypeDef
ADC_Mode:
ADC_Mode_Independent:ADC1和ADC2工作在独立模式
ADC_Mode_RegInjecSimult:ADC1和ADC2工作在同步规则和同步注入模式
ADC_Mode_RegSimult_AlterTrig:ADC1和ADC2工作在同步规则模式和交替触发模式 ADC_Mode_InjecSimult_FastInterl:ADC1和ADC2工作在同步规则模式和快速交替模式 ADC_Mode_InjecSimult_SlowInterl:ADC1和ADC2工作在同步注入模式和慢速交替模式ADC_Mode_InjecSimult:ADC1和ADC2工作在同步注入模式
26
ADC_Mode_RegSimult:ADC1和ADC2工作在同步规则模式 ADC_Mode_FastInterl:ADC1和ADC2工作在快速交替模式 ADC_Mode_SlowInterl:ADC1和ADC2工作在慢速交替模式 ADC_Mode_AlterTrig:ADC1和ADC2工作在交替触发模式
例:
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_ScanConvMode:
ADC_ScanConvMode规定了模数转换工作在扫描模式(多通道)还是单次(单通道)模式。可以设置这个参数为ENABLE或者DISABLE。
例:
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_ContinuousConvMode:
ADC_ContinuousConvMode规定了模数转换工作在连续还是单次模式。可以设置这个参数为ENABLE或者DISABLE。
例:
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_ExternalTrigConv:
ADC_ExternalTrigConv_T1_CC1:选择定时器1的捕获比较1作为转换外部触发 ADC_ExternalTrigConv_T1_CC2:选择定时器1的捕获比较2作为转换外部触发 ADC_ExternalTrigConv_T1_CC3:选择定时器1的捕获比较3作为转换外部触发 ADC_ExternalTrigConv_T2_CC2:选择定时器2的捕获比较2作为转换外部触发 ADC_ExternalTrigConv_T3_TRGO:选择定时器3的TRGO作为转换外部触发 ADC_ExternalTrigConv_T4_CC4:选择定时器4的捕获比较4作为转换外部触发 ADC_ExternalTrigConv_Ext_IT11:选择外部中断线11事件作为转换外部触发 ADC_ExternalTrigConv_None:转换由软件而不是外部触发启动
例:
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_Ext_IT11;
ADC_DataAlign:
ADC_DataAlign_Right:ADC数据右对齐 ADC_DataAlign_Left:ADC数据左对齐
例:
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_NbrOfChannel:
ADC_NbreOfChannel 规定了顺序进行规则转换的ADC通道的数目。这个数目的取值范围是1到16。
例:
ADC_InitStructure.ADC_NbrOfChannel = 16;
3 函数ADC_StructInit();
功能描述:把ADC_InitStruct中的每一个参数按缺省值填入,如下: ADC_Mode:ADC_Mode_Independent ADC_ScanConvMode:DISABLE
ADC_ContinuousConvMode:DISABLE
ADC_ExternalTrigConv:ADC_ExternalTrigConv_T1_CC1 ADC_DataAlign:ADC_DataAlign_Right ADC_NbrOfChannel:1 例:
ADC_InitTypeDef ADC_InitStructure;
ADC_StructInit(&ADC_InitStructure);
27
4 函数ADC_Cmd();
功能描述:使能或者失能指定的ADC 例:
ADC_Cmd(ADC1, ENABLE);
5 函数ADC_DMACmd();
功能描述:使能或者失能指定的ADC的DMA请求 例:
ADC_DMACmd(ADC2, ENABLE);
6 函数ADC_ITConfig();
功能描述:使能或者失能指定的ADC的中断 例:
ADC_ITConfig(ADC2, ADC_IT_EOC | ADC_IT_AWD, ENABLE);
ADC_IT:
ADC_IT可以用来使能或者失能ADC中断。可以使用下表中的一个参数,或者他们的组合。ADC_IT_EOC EOC:中断屏蔽 ADC_IT_AWD AWDOG:中断屏蔽 ADC_IT_JEOC JEOC:中断屏蔽
7 函数ADC_ResetCalibration();
功能描述:重置指定的ADC的校准寄存器 例:
ADC_ResetCalibration(ADC1);
8 函数ADC_GetResetCalibrationStatus();
功能描述:获取ADC重置校准寄存器的状态 例:
FlagStatus Status;
Status = ADC_GetResetCalibrationStatus(ADC2);
9 函数ADC_StartCalibration();
功能描述:开始指定ADC的校准状态 例:
ADC_StartCalibration(ADC2);
10 函数ADC_GetCalibrationStatus();
功能描述:获取指定ADC的校准程序 例:
FlagStatus Status;
Status = ADC_GetCalibrationStatus(ADC2);
28
11 函数ADC_SoftwareStartConvCmd();
功能描述:使能或者失能指定的ADC的软件转换启动功能 例:
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
12 函数ADC_GetSoftwareStartConvStatus();
功能描述:获取ADC软件转换启动状态 例:
FlagStatus Status; Status = ADC_GetSoftwareStartConvStatus(ADC1);
13 函数ADC_DiscModeChannelCountConfig();
功能描述:对ADC规则组通道配置间断模式 例:
ADC_DiscModeChannelCountConfig(ADC1, 2);
14 函数ADC_DiscModeCmd();
功能描述:使能或者失能指定的ADC规则组通道的间断模式 例:
ADC_DiscModeCmd(ADC1, ENABLE);
15 函数ADC_RegularChannelConfig();
功能描述:设置指定ADC的规则组通道,设置它们的转化顺序和采样时间 例:
ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_7Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 2, ADC_SampleTime_1Cycles5);
ADC_Channel 参数ADC_Channel指定了通过调用函数ADC_RegularChannelConfig来设置的ADC通道。ADC_Channel_0:选择ADC通道0 ADC_Channel_1:选择ADC通道1 ADC_Channel_2:选择ADC通道2 ADC_Channel_3:选择ADC通道3 ADC_Channel_4:选择ADC通道4 ADC_Channel_5:选择ADC通道5 ADC_Channel_6:选择ADC通道6 ADC_Channel_7:选择ADC通道7 ADC_Channel_8:选择ADC通道8 ADC_Channel_9:选择ADC通道9 ADC_Channel_10:选择ADC通道10 ADC_Channel_11:选择ADC通道11 ADC_Channel_12:选择ADC通道12 ADC_Channel_13:选择ADC通道13 ADC_Channel_14:选择ADC通道14 ADC_Channel_15:选择ADC通道15 ADC_Channel_16:选择ADC通道16 ADC_Channel_17:选择ADC通道17
29
ADC_SampleTime
ADC_SampleTime设定了选中通道的ADC采样时间。 ADC_SampleTime_1Cycles5:采样时间为1.5周期 ADC_SampleTime_7Cycles5:采样时间为7.5周期 ADC_SampleTime_13Cycles5:采样时间为13.5周期 ADC_SampleTime_28Cycles5:采样时间为28.5周期 ADC_SampleTime_41Cycles5:采样时间为41.5周期 ADC_SampleTime_55Cycles5:采样时间为55.5周期 ADC_SampleTime_71Cycles5:采样时间为71.5周期 ADC_SampleTime_239Cycles5:采样时间为239.5周期
16 函数ADC_ExternalTrigConvConfig();
功能描述:使能或者失能ADCx的经外部触发启动转换功能 例:
ADC_ExternalTrigConvCmd(ADC1, ENABLE);
17 函数ADC_GetConversionValue();
功能描述:返回最近一次ADCx规则组的转换结果 例:
u16 DataValue;
DataValue = ADC_GetConversionValue(ADC1);
18 函数ADC_GetDuelModeConversionValue();
功能描述:返回最近一次双ADC模式下的转换结果 例:
u32 DataValue;
DataValue = ADC_GetDualModeConversionValue();
19 函数ADC_AutoInjectedConvCmd();
功能描述:使能或者失能指定ADC在规则组转化后自动开始注入组转换 例:
ADC_AutoInjectedConvCmd(ADC2, ENABLE);
20 函数ADC_InjectedDiscModeCmd();
功能描述:使能或者失能指定ADC的注入组间断模式 例:
ADC_InjectedDiscModeCmd(ADC2, ENABLE);
21 函数ADC_ExternalTrigInjectedConvConfig();
功能描述:配置ADCx的外部触发启动注入组转换功能 例:
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigConv_T1_CC4);
ADC_ExternalTrigInjectedConv
ADC_ExternalTrigInjectedConv指定了所使用的注入转换启动触发。
ADC_ExternalTrigInjecConv_T1_TRGO:选择定时器1的TRGO作为注入转换外部触发
30