STM32库函数功能详解_第1页
STM32库函数功能详解_第2页
STM32库函数功能详解_第3页
STM32库函数功能详解_第4页
STM32库函数功能详解_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STM32库函数功能详解2--------------------------------------------------------------------------------------------3-----------------------------------------------------------------------------------7三、通用定时器(TIM)-------------------------------------------------------------------------------------------------9------------------------------------------------------------------------25-------------------------------------------------------------------------------------------------33---------------------------------------------------------------37七、复位和时钟设置(RCC)------------------------------------------------------------------------------------------41------------------------------------------------------------------------3在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。TIM_Init.TIM1_DMAConfig.用以配置外设功能GPIO_PinRemapConfig.typedefsignedchars8;4typedefstruct{vu32CRL;vu32CRH;vu32IDR;vu32ODR;vu32BSRR;vu32BRR;vu32LCKR;}GPIO_TypeDef;typedefstruct{vu32EVCR;vu32MAPR;vu32EXTICR[4];}AFIO_TypeDef;5GPIO库函数GPIO_DeInit(GPIOA);GPIO_AFIODeInit();GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitTypeDefstructuretypedefstruct{u16GPIO_Pin;GPIOSpeed_TypeDefGPIO_Speed;GPIOMode_TypeDefGPIO_Mode;}GPIO_InitTypeDef;GPIO_PinGPIO_SpeedGPIO_Mode6GPIO_InitTypeDefGPIO_InitStructure;GPIO_StructInit(&GPIO_InitStructure);GPIO_Speed:GPIO_SpeeGPIO_Mode:GPIO_Mode_IN_FLOu8ReadValue;ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);ReadValue=GPIO_ReadInputData(GPIOC);7函数GPIO_ReadOutputDataBitu8ReadValue;ReadValue=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_7);u16ReadValue;ReadValue=GPIO_ReadOutputData(GPIOC);7GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);GPIO_ResetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);GPIO_WriteBit(GPIOA,GPIO_Pin_15,Bit_SET);GPIO_Write(GPIOA,0x1101);GPIO_PinLockConfig(GPIOA,GPIO_Pin_0|GPIO_Pin_1);GPIO_EventOutputConfig(GPIO_PortSourceGPIOE,GPIO_PinSource5);GPIO_PortSourceGPIO_PinSource8GPIO_EventOutputConfig(GPIO_PortSourceGPIOC,GPIO_PinSource6);GPIO_EventOutputCmd(ENABLE);GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE);GPIO_RemapGPIO_PartialRemap_USAGPIO_FullRemap_USART3GPIO_PartialRemap_TGPIO_PartialRemap1_TIMGPIO_PartialRemap2_TIMGPIO_PartialRemap_TGPIO_Remap_SWJ_NoJTRST:除JTRST外SWJ完GPIO_Remap_SWJ_JTAGDGPIO_Remap_SWJ_Disable:GPIO_EXTILineConfig(GPIO_PortSource_GPIOB,GPIO_PinSource8);9typedefstruct{vu32IMR;vu32EMR;vu32RTSR;vu32FTSR;vu32SWIER;vu32PR;}EXTI_TypeDef;EXTI_DeInit();EXTI_InitTypeDefEXTI_InitStructure;EXTI_InitStructure.EXTI_Line=EXTI_Line12|EXTI_Line14;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);EXTI_InitTypeDefstructuretypedefstructEXTIMode_TypeDefEXTI_Mode;EXTIrigger_TypeDefEXTI_Trigger;FunctionalStateEXTI_LineCmd;}EXTI_InitTypeDef;EXTI_ModeEXTI_TriggerEXTI_LineCmdEXTI_InitTypeDefEXTI_InitStructure;EXTI_StructInit(&EXTI_InitStructure);4函数EXTI_GenerateSWInterruEXTI_GenerateSWInterrupt(EXTI_Line6);FlagStatusEXTIStatus;EXTIStatus=EXTI_GetFlagStatus(EXTI_Line8);EXTI_ClearFlag(EXTI_Line2);ITStatusEXTIStatus;EXTIStatus=EXTI_GetITStatus(EXTI_Line8);EXTI_ClearITpendingBit(EXTI_Line2);TIM寄存器结构typedefstruct{vu16CR1;u16RESERVED0;vu16CR2;u16RESERVED1;vu16SMCR;u16RESERVED2;vu16DIER;u16RESERVED3;vu16SR;u16RESERVED4;vu16EGR;u16RESERVED5;vu16CCMR1;u16RESERVED6;vu16CCMR2;u16RESERVED7;vu16CCER;u16RESERVED8;vu16CNT;u16RESERVED9;vu16PSC;u16RESERVED10;vu16ARR;u16RESERVED11[3];vu16CCR1;u16RESERVED12;vu16CCR2;u16RESERVED13;vu16CCR3;u16RESERVED14;vu16CCR4;u16RESERVED15[3];vu16DCR;u16RESERVED16;vu16DMAR;u16RESERVED17;}TIM_TypeDef;TIM库函数TIM_DeInit(TIM2);2函数TIM_TimeBaseInitTIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_TimeBaseStructure.TIM_Period=0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler=0xF;TIM_TimeBaseStructure.TIM_ClockDivision=0x0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);TIM_TimeBaseInitTypeDefstructuretypedefstruct{u16TIM_Period;u16TIM_Prescaler;u8TIM_ClockDivision;u16TIM_CounterMode;}TIM_TimeBaseInitTypeDef;TIM_PeriodTIM_Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它TIM_PrescalerTIM_Prescaler设置了用来作为TIMx时钟频率除数的预分频值。它的取值必须在0x0000和0xFFFF之TIM_ClockDivisionTIM_CounterModeTIM_CounterMode_Up:TIM向上计数模式TIM_CounterMode_Down:TIM向下计数模式TIM_CounterMode_CenterAligned1:TIM中央对齐模式1TIM_CounterMode_CenterAligned2:TIM中央对齐模式2功能描述:根据TIM_OCInitStruTIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_Channel=TIM_Channel_1;TIM_OCInitStructure.TIM_Pulse=0x3FFF;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;TIM_OCInit(TIM2,&TIM_OCInitStructure);指向结构TIM_OCInitTypeDef的指针,包含了TIMx时间基数TIM_OCInitTypeDefstructuretypedefstruct{u16TIM_OCMode;u16TIM_Channel;u16TIM_Pulse;u16TIM_OCPolarity;}TIM_OCInitTypeDef;TIM_OCModeTIM_OCMode_Timing:TIM输出比TIM_OCMode_Inactive:TIM输出比较TIM_OCMode_Toggle:TIM输出比TIM_OCMode_PWM1:TIM脉冲宽度调制模式1TIM_ChannelTIM_Channel_1:使用TIM通TIM_Channel_2:使用TIM通TIM_Channel_3:使用TIM通TIM_Channel_4:使用TIM通TIM_PulseTIM_OCPolarityTIM_OCPolarity_High:TIM输出比较TIM_OCPolarity_Low:4函数TIM_ICInit功能描述:根据TIM_ICInitStruTIM_DeInit(TIM2);TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStructure.TIM_ICMode=TIM_ICMode_PWMI;TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICFilter=0x0;TIM_ICInit(TIM2,&TIM_ICInitStructure);TIM_ICInitStruct:指向结构TIM_ICInitTypeDef的指针,包含了TIMx的配置信息TIM_ICInitTypeDefstructuretypedefstruct{u16TIM_ICMode;u16TIM_Channel;u16TIM_ICPolarity;u16TIM_ICSelection;u16TIM_ICPrescaler;u16TIM_ICFilter;}TIM_ICInitTypeDef;TIM_ICModeTIM_ICMode_PWMI:TIM使用输入PWM模式TIM_ChannelTIM_ICPolarityTIM_ICPolarity_Rising:TIM输入捕获TIM_ICPolarity_Falling:TIM输入捕获下降沿TIM_ICSelectionTIM_ICSelection_DirTIM_ICPrescalerTIM_ICPSC_DIV1:TIM捕获在捕获输入上每探测到一个边沿执行一次TIM_ICPSC_DIV2:TIM捕获每2个事件执行一次TIM_ICPSC_DIV3:TIM捕获每3个事件执行一次TIM_ICPSC_DIV4:TIM捕获每4个事件执行一次TIM_ICFilter5函数TIM_TimeBaseStructInit功能描述:把TIM_TimeBaseInitSTIM_TimeBaseInitStruct:指向结构TIM_TimeBaseInitTypeDef的指针,待初始化TIM_TimeBaseInitStructTIM_Period:TIM_Period_ResTIM_Prescaler:TIM_Prescaler_TIM_CKD:TIM_CKD_DIV1TIM_CounterMode:TIM_CounterMode_UpTIM_TimeBaseInitTypeDefTIM_TimeBaseInitStructure;TIM_TimeBaseStructInit(&TIM_TimeBaseInitStructure);6函数TIM_OCStructInitTIM_OCInitStruct:指向结构TIM_OCInitTypeDef的TIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCStructInit(&TIM_OCInitStructure);TIM_OCInitStruct缺省值TIM_OCMode:TIM_OCMode_TimingTIM_Channel:TIM_Channel_1TIM_Pulse:TIM_Pulse_ReTIM_OCPolarity:TIM_OCPola7函数TIM_ICStructInitTIM_ICInitStruct:指向结构TIM_ICInitTypeDef的指TIM_ICInitTypeDefTIM_ICInitStructure;TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStruct缺省值TIM_ICMode:TIM_ICMode_ICAPTIM_Channel:TIM_Channel_1TIM_ICPolarity:TIM_ICPolarTIM_ICSelection:TIM_ICSelectioTIM_ICPrescaler:TIM_ICPSC_TIM_ICFilter:TIM_ICFilter_MaTIM_Cmd(TIM2,ENABLE);TIM_ITConfig(TIM2,TIM_IT_CC1,ENABLE);TIM_ITTIM_IT_Trigger:TIM触发中TIM_DMAConfig(TIM2,TIM_DMABase_CCR1,TIM_DMABurstLength_1Byte)TIM_DMABaseTIM_DMABase_CR1:TIMCR1寄存器作为DMATIM_DMABase_CR2:TIMCR2寄存器作为DMATIM_DMABase_SMCR:TIMSMCR寄存器作为DMA传输起始TIM_DMABase_SR:TIMSR寄存器作为DMA传输起始TIM_DMABase_CCMR1:TIMCCMR1寄存器作为DMA传输起始TIM_DMABase_CCMR2:TIMCCMR2寄存器作为DMA传输起始TIM_DMABase_CCER:TIMCTIM_DMABase_CNT:TIMCNT寄存器作为DMA传输起始TIM_DMABase_ARR:TIMAPR寄存器作为DMA传输起始TIM_DMABase_CCR1:TIMCCR1寄存器作为DMA传输起始TIM_DMABase_CCR2:TIMCCR2寄存器作为DMA传输起始TIM_DMABase_CCR3:TIMCCR3寄存器作为DMA传输起始TIM_DMABase_CCR4:TIMCCR4寄存器作为DMA传输起始TIM_DMABurstLengthTIM_DMACmd(TIM2,TIM_DMA_CC1,ENABLE);TIM_DMASourceTIM_DMA_UpdateTIM更新DMA源TIM_DMA_CC1:TIM捕获/比较1DMA源TIM_DMA_CC2:TIM捕获/比较2DMA源TIM_DMA_CC3:TIM捕获/比较3DMA源TIM_DMA_CC4:TIM捕获/比较4DMA源TIM_DMA_Trigger:TIM触发DMA源12函数TIM_InternalClockConTIM_InternalClockConfig(TIM2);13函数TIM_ITRxExternalClockConfigTIM_ITRxExternalClockConfig(TIM2,TIM_TS_ITR3);TIM_InputTriggerSourceTIM_TS_ITRx:TIM内部触发x(0--3)14函数TIM_TIxExternalClockConfigTIM_TIxExternalClockConfig(TIM2,TIM_TS_TI1FP1,TIM_ICPolarity_Rising,0);TIM_TIxExternalCLKSource15函数TIM_ETRClockMode1ConfigTIM_ExternalCLK1Config(TIM2,TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted,0x0);TIM_ExtTRGPrescalerTIM_ExtTRGPolarityTIM_ExtTRGPolarity_Inverted:TIM外部触发极性翻转:低电平或下降沿有效TIM_ExtTRGPolarity_NonInve16函数TIM_ETRClockMode2ConfigTIM_ExternalCLK2Config(TIM2,TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted,0x0);TIM_ExternalCLK2Config(TIM2,TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted,0x0);18函数TIM_SelectInputvoidTIM_SelectInputTrigger(TIM2,TIM_TS_ITR3);TIM_InputTriggerSourceTIM_TS_TI1F_ED:TIMTL1边沿探测器TIM_TS_TI1FP1:TIM经滤波定时器TIM_TS_TI2FP2:TIM经滤波定时器u16TIMPrescaler=0xFF00;TIM_PrescalerConfig(TIM2,TIMPrescaler,TIM_PSCReloadMode_Immediate);TIM_PSCReloadModeTIM_PSCReloadMode_Update:TIM预分频值在更新事件装入TIM_PSCReloadMode_Immediate:TIM预分频值即时装入20函数TIM_CounterModeConfigTIM_CounterModeConfig(TIM2,TIM_Counter_CenterAligned1);21函数TIM_ForcedOC1ConfigTIM_ForcedOC1Config(TIM2,TIM_ForcedAction_Active);TIM_ForcedActionTIM_ForcedAction_Active:置为OCxREF上的活动电平TIM_ForcedAction_InActive:置为OCxREF上的非22函数TIM_ForcedOC2ConfigTIM_ForcedOC2Config(TIM2,TIM_ForcedAction_Active);23函数TIM_ForcedOC3ConfigTIM_ForcedOC3Config(TIM2,TIM_ForcedAction_Active);24函数TIM_ForcedOC4ConfigTIM_ForcedOC4Config(TIM2,TIM_ForcedAction_Active);25函数TIM_ARRPreloadConfigTIM_ARRPreloadConfig(TIM2,ENABLE);TIM_SelectCCDMA(TIM2,ENABLE);27函数TIM_OC1PreloadConfigTIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);TIM_OCPreloadTIM_OCPreload_Enable:TIMx在CCRTIM_OCPreload_Disable:TIMx在CCR28函数TIM_OC2PreloadConfigTIM_OC2PreloadConfig(TIM2,TIM_OCPreload_Enable);29函数TIM_OC3PreloadConfigTIM_OC3PreloadConfig(TIM2,TIM_OCPreload_Enable);30函数TIM_OC4PreloadConfigTIM_OC4PreloadConfig(TIM2,TIM_OCPreload_Enable);31函数TIM_OC1FastConfigTIM_OC1FastConfig(TIM2,TIM_OCFast_Enable);TIM_OCFastTIM_OCFast_Enable:TIMx输出比较快速特征性能使能TIM_OCFast_Disable:TIMx输出比较快32函数TIM_OC2FastConfigTIM_OC2FastConfig(TIM2,TIM_OCFast_Enable);33函数TIM_OC3FastConfigTIM_OC3FastConfig(TIM2,TIM_OCFast_Enable);34函数TIM_OC4FastConfigTIM_OC4FastConfig(TIM2,TIM_OCFast_Enable);35函数TIM_ClearOC1RefTIM_ClearOC1Ref(TIM2,TIM_OCClear_Enable);TIM_OCClearTIM_OCClear_Enable:TIMx输出TIM_OCClear_Disable:TIMx输出比较清除失能36函数TIM_ClearOC2RefTIM_ClearOC2Ref(TIM2,TIM_OCClear_Enable);37函数TIM_ClearOC3RefTIM_ClearOC3Ref(TIM2,TIM_OCClear_Enable);38函数TIM_ClearOC4RefTIM_ClearOC4Ref(TIM2,TIM_OCClear_Enable);39函数TIM_UpdateDisableConfigTIM_UpdateDisableConfig(TIM2,DISABLE);40函数TIM_EncoderInterfaceConfigTIM_EncoderInterfaceConfig(TIM2,TIM_EncoderMode_TI1,TIM_ICPolarity_Rising,TIM_ICPolarity_Rising);TIM_EncoderModeTIM_EncoderMode_TI1使用TIM编码模式1TIM_EncoderMode_TI1使用TIM编码模式2TIM_EncoderMode_TI12使用TIM编码模式341函数TIM_GenerateEventTIM_GenerateEvent(TIM2,TIM_EventSource_Trigger);TIM_EventSource42函数TIM_OC1PolarityConfigTIM_OC1PolarityConfig(TIM2,TIM_OCPolarity_High);43函数TIM_OC2PolarityConfigTIM_OC2PolarityConfig(TIM2,TIM_OCPolarity_High);44函数TIM_OC3PolarityConfigTIM_OC3PolarityConfig(TIM2,TIM_OCPolarity_High);45函数TIM_OC4PolarityConfigTIM_OC4PolarityConfig(TIM2,TIM_OCPolarity_High);46函数TIM_UpdateRequestConfigTIM_UpdateRequestConfig(TIM2,TIM_UpdateSource_Regular);TIM_UpdateSourceTIM_UpdateSource_Global:生成重复的脉TIM_UpdateSource_Regular:生成单一的脉冲:计数器在下一个更新事件停止47函数TIM_SelectHallSensorTIM_SelectHallSensor(TIM2,ENABLE);48函数TIM_SelectOnePulseModeTIM_SelectOnePulseMode(TIM2,TIM_OPMode_Single);TIM_OPModeTIM_OPMode_Repetitive:生成重复的脉冲:在更TIM_OPMode_Single:生成单一的脉冲:计数器在下一个更新事件停止49函数TIM_SelectOutputTriggerTIM_SelectOutputTrigger(TIM2,TIM_TRGOSource_Update);TIM_TRGOSourceTIM_TRGOSource_Reset:使用寄存器TTIM_TRGOSource_Enable:使用计数器使能CEN作为触发输出(TRTIM_TRGOSource_Update:使用更新事件作为触发输出(TTIM_TRGOSource_OC1:一旦捕获或者比较匹配发生,当标志位CC1F被设置TIM_TRGOSource_OC2Ref:使用OC2REF作为触发输出(TRGTIM_TRGOSource_OC3Ref:使用OC3REF作为触发输出(TRGTIM_TRGOSource_OC4Ref:使用OC4REF作为触发输出(TRG50函数TIM_SelectSlaveModeTIM_SelectSlaveMode(TIM2,TIM_SlaveMode_Gated);TIM_SlaveModeTIM_SlaveMode_Reset:选中触发信号(TRGI)的上升TIM_SlaveMode_Gated:当TIM_SlaveMode_Trigger51函数TIM_SelectMasterSlaveModeTIM_SelectMasterSlaveMode(TIM2,TIM_MasterSlaveMode_Enable);TIM_MasterSlaveModeTIM_MasterSlaveMode_Enable:TIM主/从模式使能u16TIMCounter=0xFFFF;TIM_SetCounter(TIM2,TIMCounter);u16TIMAutoreload=0xFFFF;TIM_SetAutoreload(TIM2,TIMAutoreload);u16TIMCompare1=0x7FFF;TIM_SetCompare1(TIM2,TIMCompare1);u16TIMCompare2=0x7FFF;TIM_SetCompare2(TIM2,TIMCompare2);u16TIMCompare3=0x7FFF;TIM_SetCompare3(TIM2,TIMCompare3);u16TIMCompare4=0x7FFF;TIM_SetCompare4(TIM2,TIMCompare4);58函数TIM_SetIC1PrescTIM_SetIC1Prescaler(TIM2,TIM_ICPSC_Div2);59函数TIM_SetIC2PrescTIM_SetIC2Prescaler(TIM2,TIM_ICPSC_Div2);60函数TIM_SetIC3PrescalTIM_SetIC3Prescaler(TIM2,TIM_ICPSC_Div2);61函数TIM_SetIC4PrescalTIM_SetIC4Prescaler(TIM2,TIM_ICPSC_Div2);62函数TIM_SetClockDivisionTIM_SetClockDivision(TIM2,TIM_CKD_DIV4);u16ICAP1value=TIM_GetCapture1(TIM2);u16ICAP2value=TIM_GetCapture2(TIM2);u16ICAP3value=TIM_GetCapture3(TIM2);u16ICAP4value=TIM_GetCapture4(TIM2);u16TIMCounter=TIM_GetCounter(TIM2);u16TIMPrescaler=TIM_GetPrescaler(TIM2);69函数TIM_GetFlagStatif(TIM_GetFlagStatus(TIM2,TIM_FLAG_CC1)==SET){}TIM_FLAG值TIM_FLAG_UpdateTIM更TIM_FLAG_CC1:TIM捕获/比较TIM_ClearFlag(TIM2,TIM_FLAG_CC1);if(TIM_GetITStatus(TIM2,TIM_IT_CC1)==SET){}72函数TIM_ClearITPendingBitTIM_ClearITPendingBit(TIM2,TIM_IT_CC1);voidADC_Config(void){}typedefstruct{vu32SR;vu32CR1;vu32CR2;vu32SMPR1;vu32SMPR2;vu32JOFR1;vu32JOFR2;vu32JOFR3;vu32JOFR4;vu32HTR;vu32LTR;vu32SQR1;vu32SQR2;vu32SQR3;vu32JSQR;vu32JDR1;vu32JDR2;vu32JDR3;vu32JDR4;vu32DR;}ADC_TypeDef;ADC库函数ADC_DeInit(ADC2);{ADC_InitTypeDefADC_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_InitTypeDef:typedefstruct{u32ADC_Mode;FunctionalStateADC_ScanConvMode;FunctionalStateADC_ContinuousConvMode;u32ADC_ExternalTrigConv;u32ADC_DataAlign;u8ADC_NbrOfChannel;}ADC_InitTypeDefADC_Mode:ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;ADC_ScanConvMode:ADC_ScanConvMode规定了模数转换工作在扫描模式(多通道ADC_InitStructure.ADC_ScanConvMode=ENABLE;ADC_ContinuousConvMode:ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;ADC_ExternalTrigConv:ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_Ext_IT11;ADC_DataAlign:ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_NbrOfChannel:ADC_InitStructure.ADC_NbrOfChannel=16;ADC_ScanConvMode:DISADC_ContinuousConvMode:DISABADC_ExternalTrigConv:ADC_ExterADC_DataAlign:ADC_DataAADC_NbrOfChannel:1ADC_InitTypeDefADC_InitStructure;ADC_StructInit(&ADC_InitStructureADC_Cmd(ADC1,ENABLE);ADC_DMACmd(ADC2,ENABLE);ADC_ITConfig(ADC2,ADC_IT_EOC|ADC_IT_AWD,ENABLE);ADC_IT:7函数ADC_ResetCalibration();ADC_ResetCalibration(ADC1);8函数ADC_GetResetCalibrationStatus();FlagStatusStatus;Status=ADC_GetResetCalibrationStatus(ADC2);9函数ADC_StartCalibration();ADC_StartCalibration(ADC2);10函数ADC_GetCalibrationStatusFlagStatusStatus;Status=ADC_GetCalibrationStatus(ADC2);11函数ADC_SoftwareStartConvCmd();ADC_SoftwareStartConvCmd(ADC1,ENABLE);12函数ADC_GetSoftwareStartConvStatus();FlagStatusStatus;Status=ADC_GetSoftwareStartConvStatus(ADC1);13函数ADC_DiscModeChannelCountConfig();ADC_DiscModeChannelCountConfig(ADC1,2);ADC_DiscModeCmd(ADC1,ENABLE);15函数ADC_RegularChannelConfig();ADC_RegularChannelConfig(ADC1,ADC_Channel_2,1,ADC_SampleTime_7Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_8,2,ADC_SampleTime_1Cycles5);ADC_SampleTime16函数ADC_ExternalTrigConvConfig();ADC_ExternalTrigConvCmd(ADC1,ENABLE);17函数ADC_GetConversionValue();u16DataValue;DataValue=ADC_GetConversionValue(ADC1);18函数ADC_GetDuelModeConversionValue();u32DataValue;DataValue=ADC_GetDualModeConversionValue();19函数ADC_AutoInjectedConvCmd();ADC_AutoInjectedConvCmd(ADC2,ENABLE);20函数ADC_InjectedDiscModeCmd();ADC_InjectedDiscModeCmd(ADC2,ENABLE);21函数ADC_ExternalTrigInjectedConvConfig();ADC_ExternalTrigInjectedConvConfig(ADC1,ADC_ExternalTrigConv_T1_CC4);ADC_ExternalTrigInjectedConv22函数ADC_ExternalTrigInjectedConvCmd();ADC_ExternalTrigInjectedConvCmd(ADC1,ENABLE);23函数ADC_SoftwareStartinjectedConvCmd();ADC_SoftwareStartInjectedConvCmd(ADC2,ENABLE);24函数ADC_GetsoftwareStartinjectedConvStatus();FlagStatusStatus;Status=ADC_GetSoftwareStartInjectedConvStatus(ADC1);25函数ADC_InjectedChannleConfig();ADC_InjectedChannelConfig(ADC1,ADC_Channel_12,2,ADC_SampleTime_28Cycles5);ADC_InjectedChannelConfig(ADC2,ADC_Channel_4,11,ADC_SampleTime_71Cycles5);26函数ADC_InjectedSequencerLengthConfig();ADC_InjectedSequencerLengthConfig(ADC1,4);27函数ADC_SetinjectedOffset();ADC_SetInjectedOffset(ADC1,ADC_InjectedChannel_3,0x100);ADC_InjectedChannel28函数ADC_GetInjectedConversionValue();u16InjectedDataValue;InjectedDataValue=ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1);29函数ADC_AnalogWatchdogCmd();ADC_AnalogWatchdogCmd(ADC2,ADC_AnalogWatchdog_AllRegAllInjecEnable);30函数ADC_AnalogWatchdongThresholdsConfig();ADC_AnalogWatchdogThresholdsConfig(ADC1,0x400,0x100);31函数ADC_AnalogWatchdongSingleChannelConfig();ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_1);32函数ADC_TampSensorVrefintCmd();ADC_TempSensorVrefintCmd(ENABLE);FlagStatusStatus;Status=ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);ADC_FLAGADC_ClearFlag(ADC2,ADC_FLAG_STRT);ITStatusStatus;Status=ADC_GetITStatus(ADC1,ADC_IT_AWD);36函数ADC_ClearITPendingBit();ADC_ClearITPendingBit(ADC2,ADC_IT_JEOC);typedefstruct{u32RESERVED0;vu16DR1;u16RESERVED1;vu16DR2;u16RESERVED2;vu16DR3;u16RESERVED3;vu16DR4;u16RESERVED4;vu16DR5;u16RESERVED5;vu16DR6;u16RESERVED6;vu16DR7;u16RESERVED7;vu16DR8;u16RESERVED8;vu16DR9;u16RESERVED9;vu16DR10;u16RESERVED10;vu16RTCCR;u16RESERVED11;vu16CR;u16RESERVED12;vu16CSR;u16RESERVED13;}BKP_TypeDef;BKP_DeInit();2函数BKP_TamperPinLevelCoBKP_TamperPinLevelConfig(BKP_TamperPinLevel_High);BKP_TamperPinLevelBKP_TamperPinCmd(ENABLE);BKP_ITConfig(ENABLE);BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock);BKP_RTCOutputSource6函数BKP_SetRTCCalibrationValuBKP_SetRTCCalibrationValue(0x7F);7函数BKP_WriteBackupRBKP_WriteBackupRegister(BKP_DR1,0xA587);8函数BKP_ReadBackupRegu16Data;Data=BKP_ReadBackupRegister(BKP_DR1);FlagStatusStatus;Status=BKP_GetFlagStatus();if(Status==RESET)BKP_ClearFlag();ITStatusStatus;Status=BKP_GetITStatus();if(Status==RESET)BKP_ClearITPendingBit();DMA寄存器结构typedefstruct{vu32CCR;vu32CNDTR;vu32CPAR;vu32CMAR;}DMA_Channel_TypeDef;typedefstruct{vu32ISR;vu32IFCR;}DMA_TypeDef;DMA库函数DMA_DeInit(DMA_Channel2);功能描述:根据DMA_InitStruct中指定DMA_InitTypeDefstructuretypedefstruct{u32DMA_PeripheralBaseAddr;u32DMA_MemoryBaseAddr;u32DMA_DIR;u32DMA_BufferSize;u32DMA_PeripheralInc;u32DMA_MemoryInc;u32DMA_PeripheralDataSize;u32DMA_MemoryDataSize;u32DMA_Mode;u32DMA_Priority;u32DMA_M2M;}DMA_InitTypeDef;DMA_PeripheralBaseAddrDMA_MemoryBaseAddrDMA_BufferSizeDMA_BufferSize用以定义指定DMA通道的DMA缓存的大小,单位为数据单位。根据传输方向,数据单位等于结构中参数DMA_PeripheralDaDMA_PeripheralIncDMA_PeripheralInc用来设定外设地址寄存器DMA_MemoryIncDMA_PeripheralDataSizeDMA_MemoryDataSizeDMA_ModeDMA_PriorityDMA_InitTypeDefDMA_InitStructure;DMA_InitStructure.DMA_PeripheralBaseAddr=0x40005400;DMA_InitStructure.DMA_MemoryBaseAddr=0x20000100;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=256;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Normal;DMA_InitStructure.DMA_Priority=DMA_Priority_Medium;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;DMA_Init(DMA_Channel1,&DMA_InitStructure);3函数DMA_StructInitDMA_PeripheralInc:DMA_PeripheralInc_DMA_MemoryInc:DMA_MemorDMA_PeripheralDataSize:DMA_PeripheralDataSizeDMA_MemoryDataSize:DMA_MemoryDataDMA_InitTypeDefDMA_InitStructure;DMA_StructInit(&DMA_InitStructure);DMA_Cmd(DMA_Channel7,ENABLE);DMA_ITConfig(DMA_Channel5,DMA_IT_TC,ENABLE);6函数DMA_GetCurrDataCounte功能描述:返回当前DMA通道x剩余的待传输数据数目u16CurrDataCount;CurrDataCount=DMA_GetCurrDataCounter(DMA_Channel2);7函数DMA_GetFlagStatusFlagStatusStatus;Status=DMA_GetFlagStatus(DMA_FLAG_HT6);8函数DMA_ClearFlagDMA_ClearFlag(DMA_FLAG_TE3);ITStatusStatus;Status=DMA_GetITStatus(DMA_IT_TC7);10函数DMA_ClearITPendingDMA_ClearITPendingBit(DMA_IT_GL5);RCC寄存器结构typedefstruct{vu32CR;vu32CFGR;vu32CIR;vu32APB2RSTR;vu32APB1RSTR;vu32AHBENR;vu32APB2ENR;vu32APB1ENR;vu32BDCR;vu32CSR;}RCC_TypeDef;RCC库函数RCC_DeInit();RCC_HSEConfig(RCC_HSE_ON);3函数RCC_WaitForHSEStartUpErrorStatusHSEStartUpStatus;RCC_HSEConfig(RCC_HSE_ON);/*EnableHSE*/HSEStartUpStatus=RCC_WaitForHSEStartUp();/*WaittillHSEisreadyandifTimeoutisreachedexit*/if(HSEStartUpStatus==SUCCESS){/*AddherePLLanssystemclockconfig*/}{/*Addheresomecodetodealwiththiserror*/}4函数RCC_AdjustHSICalibrationValueRCC_AdjustHSICalibrationValue(0x1F);RCC_HSICmd(ENABLE);RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);RCC_PLLSourceRCC_PLLMul_a:PLL输入时钟xa2--16)RCC_PLLCmd(ENABLE);RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);RCC_SYSCLKSource9函数RCC_GetSYSCLKSourceif(RCC_GetSYSCLKSource()!=0x04)/*TestifHSEisusedassystemclock*/{}{}/*ConfigureHCLKsuchasHCLK=SYSCLK*/RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_HCLKRCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK1RCC_PCLK2Config(RCC_HCLK_Div1);RCC_PCLK2RCC_ITConfig(RCC_IT_PLLRDY,ENABLE);RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);RCC_USBCLKSourceRCC_ADCCLKConfig(RCC_PCLK2_Div2);RCC_ADCCLKSource/*EnabletheLSE*/RCC_LSEConfig(RCC_LSE_ON);RCC_LSICmd(ENABLE);RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);RCC_RTCCLKSourceRCC_RTCCLKSource_HSE_DRCC_RTCCLKCmd(ENABLE);RCC_ClocksTypeDefRCC_Clocks;RCC_GetClocksFreq(&RCC_Clocks);RCC_ClocksTypeDefstructuretypedefstruct{u32SYSCLK_Frequency;u32HCLK_Frequency;u32PCLK1_Frequency;u32PCLK2_Frequency;u32ADCCLK_Frequency;}RCC_ClocksTypeDef;SYSCLK_FrequencyHCLK_FrequencyPCLK1_FrequencyPCLK2_FrequencyADCCLK_Frequency21函数RCC_AHBPeriphClockCmdRCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA);RCC_AHBPeriph22函数RCC_APB2PeriphClockCmdRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_SPI1,ENABLE);RCC_APB2Periph23函数RCC_APB1PeriphClockCmdRCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP|RCC_APB1Periph_PWR,ENABLE);RCC_APB1Periph24函数RCC_APB2PeriphResetCmd/*EntertheSPI1peripheraltoreset*/RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,ENABLE);/*ExittheSPI1peripheralfromreset*/RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,DISABLE);25函数RCC_APB1PeriphResetCmd/*EntertheSPI2peripheraltoreset*/RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,ENABLE);/*ExittheSPI2peripheralfromreset*/RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2,DISABLE);26函数RCC_BackupResetCmd/*ResettheentireBackupdomain*/RCC_BackupResetCmd(ENABLE);27函数RCC_ClockSecuritySystemCmd/*EnabletheClockSecuritySystem*/RCC_ClockSecuritySystemCmd(ENABLE);RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);29函数RCC_GetFlagStat/*TestifthePLLclockisreadyFlagStatusStatus;Status=RCC_GetFlagStatus(RCC_FLAG_PLLRDY);if(Status==RESET){}给出了所有可以被函数RCC_GetFlRCC_ClearFlag();/*TestifthePLLReadyinterrupthasoccurredornot*/ITStatusStatus;Status=RCC_GetITStatus(RCC_IT_PLLRDY);if(Status==RESET){}{}给出了所有可以被函数RCC_GetIT32函数RCC_ClearITPendingBit/*ClearthePLLReadyinterruptpendingbit*/RCC_ClearITPendingBit(RCC_IT_PLLRDY);给出了所有可以被函数RCC_ClearITPendingBitNVIC寄存器结构typedefstruct{vu32Enable[2];u32RESERVED0[30];vu32Disable[2];u32RSERVED1[30];vu32Set[2];u32RESERVED2[30];vu32Clear[2];u32RESERVED3[30];vu32Active[2];u32RESERVED4[62];vu32Priority[11];}NVIC_TypeDef;/*NVICStructure*/typedefstruct{vu32CPUID;vu32IRQControlState;vu32ExceptionTableOffset;vu32AIRC;vu32SysCtrl;vu32ConfigCtrl;vu32SystemPriority[3];vu32SysHandlerCtrl;vu32ConfigFaultStatus;vu32HardFaultStatus;vu32DebugFaultStatus;vu32MemoryManageFaultAddr;vu32BusFaultAddr;}SCB_TypeDef;/*SystemControlBlockStructure*/NVIC库函数NVIC_DeInit();NVIC_SCBDeInit();3函数NVIC_PriorityGroupConfigNVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_PriorityGroup功能描述:根据NVIC_InitStruct中指定NVIC_InitStruct:指向结构NVNVIC_InitTypeDefstructuretypedefstruct{u8NVIC_IRQChannel;u8NVIC_IRQChannelPreemptionPriority;u8NVIC_IRQChannelSubPriority;FunctionalStateNVIC_IRQChannelCmd;}NVIC_InitTypeDef;NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=2;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=5;NVIC_InitStructure(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=RTC_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelSubPriority=7;NVIC_InitStructure(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelSubPriority=7;NVIC_InitStructure(&NVIC_InitStructure);NVIC_IRQChannelTIM1_BRK_IRQChannel:TIM1暂停中断TIM1_UP_IRQChannel:TIM1刷新中断TIM1_TRG_COM_IRQChannel:TIM1触发和通TIM1_CC_IRQChannel:TIM1捕获比较中断TIM2_IRQChannel:TIM2全局TIM3_IRQChannel:TIM3全局TIM4_IRQChannel:TIM4全局NVIC_IRQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论