72 函数TIM_ClearITPendingBit
功能描述:清除TIMx的中断待处理位 例:
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
四:ADC寄存器
ADC配置规则
void ADC_Config(void)
{
定义ADC初始化结构体变量 // ADC_Init(); ADC1和ADC2工作模式 使能扫描
ADC转换工作模式 由软件控制转换 转换数据右对齐 设置转换通道
初始化ADC // ADC_Init();
ADC1选择信道、音序器等级、采样时间 使能ADC1模块DMA 使能ADC1
重置ADC1校准寄存器 等待ADC1校准重置完成 开始ADC1校准 等待ADC1校准完成 使能ADC1软件开始转换 }
ADC寄存器结构
ADC_TypeDef,定义于文件“stm32f10x_map.h”如下:
typedef struct {
vu32 SR; vu32 CR1; vu32 CR2; vu32 SMPR1; vu32 SMPR2; vu32 JOFR1; vu32 JOFR2; vu32 JOFR3; vu32 JOFR4; vu32 HTR;
25
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