STM32F103标准固件库寄存器及常用函数整理

学习STM32其实就是学习它的寄存器以及函数的使用,能用单片机的资源实现自己想要的功能,从最开始的点亮一个led,到使用按键,串口,ADC/DAC,定时器计时计数,输出PWM,驱动电机,使用IIC,SPI进行通讯,驱动各个电子模块等。下面我就STM32的标准库寄存器和常用函数做个整理,以下内容均来自《STM32固件库使用手册中文版》,方便日后查阅。
1、GPIO相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

GPIO_DeInit(GPIOA);
GPIO_AFIODeInit();
GPIO_Init(GPIOE, &GPIO_InitStructure);	 
GPIO_StructInit(&GPIO_InitStructure);
GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
GPIO_ReadInputData(GPIOC);
GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);
GPIO_ReadOutputData(GPIOC);
GPIO_SetBits(GPIOA, GPIO_Pin_10);
GPIO_ResetBits(GPIOA, GPIO_Pin_10);
GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);
GPIO_Write(GPIOA, 0x1101);
GPIO_PinLockConfig(GPIOA, GPIO_Pin_0);
GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);
GPIO_EventOutputCmd(ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);
GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource8);

2、NVIC相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

NVIC_DeInit();
NVIC_SCBDeInit();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
EXTI_Init(&EXTI_InitStructure);
NVIC_StructInit(&NVIC_InitStructure);
NVIC_SETPRIMASK();
NVIC_RESETPRIMASK();
NVIC_SETFAULTMASK();
NVIC_RESETPRIMASK();
NVIC_BASEPRICONFIG(10);
NVIC_GetBASEPRI();
NVIC_GetCurrentPendingIRQChannel();
NVIC_GetIRQChannelPendingBitStatus(ADC_IRQChannel);
NVIC_SetIRQChannelPendingBit(SPI1_IRQChannel);
NVIC_ClearIRQChannelPendingBit(ADC_IRQChannel);
NVIC_GetCurrentActiveHandler();
NVIC_GetIRQChannelActiveBitStatus(ADC_IRQChannel);
NVIC_GetCPUID();
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
NVIC_GenerateSystemReset();
NVIC_GenerateCoreReset();
NVIC_SystemLPConfig(SEVONPEND, ENABLE);
NVIC_SystemHandlerConfig(SystemHandler_MemoryManage, ENABLE);
NVIC_SystemHandlerPriorityConfig(SystemHandler_MemoryManage, 2, 8);
NVIC_GetSystemHandlerPendingBitStatus(SystemHandler_MemoryManage);
NVIC_SetSystemHandlerPendingBit(SystemHandler_NMI);
NVIC_ClearSystemHandlerPendingBit(SystemHandler_SysTick);
NVIC_GetSystemHandlerActiveBitStatus(SystemHandler_BusFault);
NVIC_GetFaultHandlerSources(SystemHandler_BusFault);
NVIC_GetFaultAddress(SystemHandler_BusFault);

3.RCC相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
RCC_WaitForHSEStartUp();
RCC_AdjustHSICalibrationValue(0x1F);
RCC_HSICmd(ENABLE);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
RCC_GetSYSCLKSource() != 0x04
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_ITConfig(RCC_IT_PLLRDY, ENABLE);
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
RCC_ADCCLKConfig(RCC_PCLK2_Div2);
RCC_LSEConfig(RCC_LSE_ON);
RCC_LSICmd(ENABLE);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
RCC_RTCCLKCmd(ENABLE);
RCC_GetClocksFreq(&RCC_Clocks);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI2, DISABLE);
RCC_BackupResetCmd(ENABLE);
RCC_ClockSecuritySystemCmd(ENABLE);
RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);
RCC_GetFlagStatus(RCC_FLAG_PLLRDY);
RCC_ClearFlag();
RCC_GetITStatus(RCC_IT_PLLRDY);
RCC_ClearITPendingBit(RCC_IT_PLLRDY);

4、RTC相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

RTC_ITConfig(RTC_IT_ALR, ENABLE);
RTC_EnterConfigMode();
RTC_ExitConfigMode();
RTC_GetCounter();
RTC_SetCounter(0xFFFF5555);
RTC_SetPrescaler(0x7A12);
RTC_SetAlarm(0xFFFFFFFA);
RTC_GetDivider();
RTC_WaitForLastTask();
RTC_WaitForSynchro();
RTC_GetFlagStatus(RTC_Flag_OW);
RTC_ClearFlag(RTC_FLAG_OW);
RTC_GetITStatus(RTC_IT_SEC);
RTC_ClearITPendingBit(RTC_IT_SEC);

5、SysTick相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
SysTick_SetReload(0xFFFF);
SysTick_CounterCmd(SysTick_Counter_Enable);
SysTick_ITConfig(ENABLE);
SysTick_GetCounter();
SysTick_GetFlagStatus(SysTick_FLAG_COUNT);

6、ADC相关的寄存器、库函数及举例在这里插入图片描述
在这里插入图片描述

ADC_DeInit(ADC2);
ADC_Init(ADC1, &ADC_InitStructure);
ADC_StructInit(&ADC_InitStructure);
ADC_Cmd(ADC1, ENABLE);
ADC_DMACmd(ADC2, ENABLE);
ADC_ITConfig(ADC2, ADC_IT_EOC | ADC_IT_AWD, ENABLE);
ADC_ResetCalibration(ADC1);
ADC_GetResetCalibrationStatus(ADC2);
ADC_StartCalibration(ADC2);
ADC_GetCalibrationStatus(ADC2);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
ADC_GetSoftwareStartConvStatus(ADC1);
ADC_DiscModeChannelCountConfig(ADC1, 2);
ADC_DiscModeCmd(ADC1, ENABLE);
ADC_RegularChannelConfig(ADC1,ADC_Channel_2,1,ADC_SampleTime_7Cycles5);
ADC_ExternalTrigConvCmd(ADC1, ENABLE);
ADC_GetConversionValue(ADC1);
ADC_GetDualModeConversionValue();
ADC_AutoInjectedConvCmd(ADC2, ENABLE);
ADC_InjectedDiscModeCmd(ADC2, ENABLE);
ADC_ExternalTrigInjectedConvConfig(ADC1,ADC_ExternalTrigConv_T1_CC4);
ADC_ExternalTrigInjectedConvCmd(ADC1, ENABLE);
ADC_SoftwareStartInjectedConvCmd(ADC2, ENABLE);
ADC_GetSoftwareStartInjectedConvStatus(ADC1);
ADC_InjectedChannelConfig(ADC2, ADC_Channel_4, 11,ADC_SampleTime_71Cycles5);
ADC_InjectedSequencerLengthConfig(ADC1, 4);
ADC_SetInjectedOffset(ADC1, ADC_InjectedChannel_3, 0x100);
ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1);
ADC_AnalogWatchdogCmd(ADC2,ADC_AnalogWatchdog_AllRegAllInjecEnable);
ADC_AnalogWatchdogThresholdsConfig(ADC1, 0x400, 0x100);
ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_1);
ADC_TempSensorVrefintCmd(ENABLE);
ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC);
ADC_ClearFlag(ADC2, ADC_FLAG_STRT);
ADC_GetITStatus(ADC1, ADC_IT_AWD);
ADC_ClearITPendingBit(ADC2, ADC_IT_JEOC);

7、IIC相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述
ST的软件IIC不好用,一般都用硬件模拟,所以就不展开库函数的举例了。

8、SPI相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

SPI_DeInit(SPI2);
SPI_Init(SPI1,&SPI_InitStructure);
SPI_StructInit(&SPI_InitStructure);
SPI_Cmd(SPI1, ENABLE);
SPI_ITConfig(SPI2, SPI_IT_TXE, ENABLE);
SPI_DMACmd(SPI2, SPI_DMAReq_Rx, ENABLE);
SPI_SendData(SPI1, 0xA5);
SPI_ReceiveData(SPI2);
SPI_NSSInternalSoftwareConfig(SPI2, SPI_NSSInternalSoft_Reset);
SPI_SSOutputCmd(SPI1, ENABLE);
SPI_DataSizeConfig(SPI2, SPI_DataSize_16b);
SPI_TransmitCRC(SPI1);
SPI_CalculateCRC(SPI2, ENABLE);
CRCValue = SPI_GetCRC(SPI1, SPI_CRC_Tx);
SPI_GetCRCPolynomial(SPI2);
SPI_BiDirectionalLineConfig(SPI_Direction_Tx);
SPI_ClearFlag(SPI2, SPI_FLAG_OVR);
SPI_GetITStatus(SPI1, SPI_IT_OVR);
SPI_ClearITPendingBit(SPI2, SPI_IT_CRCERR);

9、DMA相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

DMA_DeInit(DMA_Channel2);
DMA_Init(DMA,&DMA_InitStructure);
DMA_StructInit(&DMA_InitStructure);
DMA_Cmd(DMA_Channel7, ENABLE);
DMA_ITConfig(DMA_Channel5, DMA_IT_TC, ENABLE);
DMA_GetCurrDataCounter(DMA_Channel2);
DMA_GetFlagStatus(DMA_FLAG_HT6);
DMA_ClearFlag(DMA_FLAG_TE3);
DMA_GetITStatus(DMA_IT_TC7);
DMA_ClearITPendingBit(DMA_IT_GL5);

10、USART相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

USART_DeInit(USART1);
USART_Init(USART,&USART_InitStructure);
USART_StructInit(&USART_InitStructure);
USART_Cmd(USART1, ENABLE);
USART_ITConfig(USART1, USART_IT_Transmit ENABLE);
USART_DMACmd(USART2, USART_DMAReq_Rx | USART_DMAReq_Tx, ENABLE);
USART_SetAddress(USART2, 0x5);
USART_WakeUpConfig(USART1, USART_WakeUpIdleLine);
USART_ReceiverWakeUpCmd(USART3, DISABLE);
USART_LINBreakDetectLengthConfig(USART1,USART_LINDetectLength_10b);
USART_LINCmd(USART2, ENABLE);
USART_SendData(USART3, 0x26);
USART_ReceiveData(USART2);
USART_SendBreak(USART1);
USART_SetGuardTime(0x78);
USART_SetPrescaler(0x56);
USART_SmartCardCmd(USART1, ENABLE);
USART_SmartCardNACKCmd(USART1, ENABLE);
USART_HalfDuplexCmd(USART2, ENABLE);
USART_IrDAConfig(USART2,USART_IrDAMode_LowPower);
USART_IrDACmd(USART1, ENABLE);
USART_GetFlagStatus(USART1, USART_FLAG_TXE);
USART_ClearFlag(USART1,USART_FLAG_OR);
USART_GetITStatus(USART1, USART_IT_OverrunError);
USART_ClearITPendingBit(USART1,USART_IT_OverrunError);

11、通用定时器TIM3相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

TIM_DeInit(TIM2);
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);
TIM_OCInit(TIM3,&TIM_OCInitStructure);
TIM_ICInit(TIM3,&TIM_ICInitStructure);
TIM_TimeBaseStructInit(& TIM_TimeBaseInitStructure);
TIM_OCStructInit(& TIM_OCInitStructure);
TIM_ICStructInit(& TIM_ICInitStructure);
TIM_Cmd(TIM2, ENABLE);
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE );
TIM_DMAConfig(TIM2, TIM_DMABase_CCR1, TIM_DMABurstLength_1Byte);
TIM_DMACmd(TIM2, TIM_DMA_CC1, ENABLE);
TIM_InternalClockConfig(TIM2);
TIM_ITRxExternalClockConfig(TIM2, TIM_TS_ITR3);
TIM_TIxExternalClockConfig(TIM2,TIM_TS_TI1FP1,TIM_ICPolarity_Rising,0);
TIM_ExternalCLK1Config(TIM2,TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted, 0x0);
TIM_ETRConfig(TIM2,TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted, 0x0);
TIM_SelectInputTrigger(TIM2, TIM_TS_ITR3);
TIM_PrescalerConfig(TIM2, TIMPrescaler,TIM_PSCReloadMode_Immediate);
TIM_CounterModeConfig(TIM2, TIM_Counter_CenterAligned1);
TIM_ForcedOC1Config(TIM2, TIM_ForcedAction_Active);
TIM_ForcedOC2Config(TIM2, TIM_ForcedAction_Active);
TIM_ForcedOC3Config(TIM2, TIM_ForcedAction_Active);
TIM_ForcedOC4Config(TIM2, TIM_ForcedAction_Active);
TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM_SelectCCDMA(TIM2, ENABLE);
TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);
TIM_OC1FastConfig(TIM2, TIM_OCFast_Enable);
TIM_OC2FastConfig(TIM2, TIM_OCFast_Enable);
TIM_OC3FastConfig(TIM2, TIM_OCFast_Enable);
TIM_OC4FastConfig(TIM2, TIM_OCFast_Enable);
TIM_ClearOC1Ref(TIM2, TIM_OCClear_Enable);
TIM_ClearOC2Ref(TIM2, TIM_OCClear_Enable);
TIM_ClearOC3Ref(TIM2, TIM_OCClear_Enable);
TIM_ClearOC4Ref(TIM2, TIM_OCClear_Enable);
TIM_UpdateDisableConfig(TIM2, DISABLE);
TIM_EncoderInterfaceConfig(TIM2,TIM_EncoderMode_TI1,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
TIM_GenerateEvent(TIM2, TIM_EventSource_Trigger);
TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High);
TIM_OC2PolarityConfig(TIM2, TIM_OCPolarity_High);
TIM_OC3PolarityConfig(TIM2, TIM_OCPolarity_High);
TIM_OC4PolarityConfig(TIM2, TIM_OCPolarity_High);
TIM_UpdateRequestConfig(TIM2, TIM_UpdateSource_Regular);
TIM_SelectHallSensor(TIM2, ENABLE);
TIM_SelectOnePulseMode(TIM2, TIM_OPMode_Single);
TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update);
TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Gated);
TIM_SelectMasterSlaveMode(TIM2, TIM_MasterSlaveMode_Enable);
TIM_SetCounter(TIM2, TIMCounter);
TIM_SetAutoreload(TIM2, TIMAutoreload);
TIM_SetCompare1(TIM2, TIMCompare1);
TIM_SetCompare2(TIM2, TIMCompare2);
TIM_SetCompare3(TIM2, TIMCompare3);
TIM_SetCompare4(TIM2, TIMCompare4);
TIM_SetIC1Prescaler(TIM2, TIM_ICPSC_Div2);
TIM_SetIC2Prescaler(TIM2, TIM_ICPSC_Div2);
TIM_SetIC3Prescaler(TIM2, TIM_ICPSC_Div2);
TIM_SetIC4Prescaler(TIM2, TIM_ICPSC_Div2);
TIM_SetClockDivision(TIM2, TIM_CKD_DIV4);
TIM_GetCapture1(TIM2);//获得TIM2输入捕获1的值
TIM_GetCapture2(TIM2);//获得TIM2输入捕获2的值
TIM_GetCapture3(TIM2);//获得TIM2输入捕获3的值
TIM_GetCapture4(TIM2);//获得TIM2输入捕获4的值
TIM_GetCounter(TIM2);
TIM_GetPrescaler(TIM2);//获得TIM2的预分频值
TIM_ClearFlag(TIM2, TIM_FLAG_CC1);
TIM_GetITStatus(TIM2, TIM_IT_CC1) == SETTIM_ClearITPendingBit(TIM2, TIM_IT_CC1);

通用定时器的内容真多,但是,高级定时器比通用定时器的内容更多,因为通用定时器有的功能,高级定时器都有。而高级定时器有的功能,通用定时器不一定有。

12、高级定时器TIM1相关的寄存器、库函数及举例
在这里插入图片描述
在这里插入图片描述

TIM1_DeInit();
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStruct);
TIM1_OC1Init(&TIM1_OCInitStructure);
TIM1_OC2Init(&TIM1_OCInitStructure);
TIM1_OC3Init(&TIM1_OCInitStructure);
TIM1_OC4Init(&TIM1_OCInitStructure);
TIM1_BDTRConfig(&TIM1_BDTRInitStructure);
TIM1_ICInit(&TIM1_ICInitStructure);
TIM1_PWMIConfig(&TIM1_ICInitStructure);
TIM1_TimeBaseStructInit(& TIM1_TimeBaseInitStructure);
TIM1_OCStructInit(& TIM1_OCInitStructure);
TIM1_ICStructInit(& TIM1_ICInitStructure);
TIM1_BDTRStructInit(& TIM1_BDTRInitStructure);
TIM1_Cmd(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE);
TIM1_ITConfig(TIM1_IT_CC1, ENABLE );
TIM1_DMAConfig(TIM1_DMABase_CCR1, TIM1_DMABurstLength_1Byte)
TIM1_DMACmd(TIM1_DMA_CC1, ENABLE);
TIM1_InternalClockConfig(TIM2);
TIM1_ExternalCLK1Config(TIM1_ExtTRGPSC_DIV2,TIM1_ExtTRGPolarity_NonInverted, 0x0);
TIM1_ExternalCLK2Config(TIM1_ExtTRGPSC_DIV2,TIM1_ExtTRGPolarity_NonInverted, 0x0);
TIM1_ETRConfig(TIM1_ExtTRGPSC_DIV2,TIM1_ExtTRGPolarity_NonInverted,0x0);
TIM1_ITRxExternalClockConfig(TIM1_TS_ITR3);
TIM1_TIxExternalClockConfig(TIM1_TS_TI1FP1, TIM1_ICPolarity_Rising, 0);
TIM1_SelectInputTrigger(TIM1_TS_ITR3);
TIM1_UpdateDisableConfig(DISABLE);
TIM1_UpdateRequestConfig(TIM1_UpdateSource_Regular);
TIM1_SelectHallSensor(ENABLE);
TIM1_SelectOnePulseMode(TIM1_OPMode_Single);
TIM1_SelectOutputTrigger(TIM1_TRGOSource_Update);
TIM1_SelectSlaveMode(TIM1_SlaveMode_Gated);
TIM1_SelectMasterSlaveMode(TIM2, TIM1_MasterSlaveMode_Enable);
TIM1_EncoderInterfaceConfig(TIM1_EncoderMode_1,TIM1_ICPolarity_Rising,TIM1_ICPolarity_Rising);
TIM1_PrescalerConfig(0xFF00, TIM1_PSCReloadMode_Update);
TIM1_CounterModeConfig(TIM1_Counter_CenterAligned1);
TIM1_ForcedOC1Config(TIM1_ForcedAction_Active);
TIM1_ForcedOC2Config(TIM1_ForcedAction_Active);
TIM1_ForcedOC3Config(TIM1_ForcedAction_Active);
TIM1_ForcedOC4Config(TIM1_ForcedAction_Active);
TIM1_ARRPreloadConfig(ENABLE);
TIM1_SelectCOM(ENABLE);
TIM1_SelectCCDMA(ENABLE);
TIM1_CCPreloadControl(ENABLE);
TIM1_OC1PreloadConfig(TIM1_OCPreload_Enable);
TIM1_OC2PreloadConfig(TIM1_OCPreload_Enable);
TIM1_OC3PreloadConfig(TIM1_OCPreload_Enable);
TIM1_OC4PreloadConfig(TIM1_OCPreload_Enable);
TIM1_OC1FastConfig(TIM1_OCFast_Enable);
TIM1_OC2FastConfig(TIM1_OCFast_Enable);
TIM1_OC3FastConfig(TIM1_OCFast_Enable);
TIM1_OC4FastConfig(TIM1_OCFast_Enable);
TIM1_ClearOC1Ref(TIM1_OCClear_Enable);
TIM1_ClearOC2Ref(TIM1_OCClear_Enable);
TIM1_ClearOC3Ref(TIM1_OCClear_Enable);
TIM1_ClearOC4Ref(TIM1_OCClear_Enable);
TIM1_GenerateEvent(TIM1_EventSource_Trigger);
TIM1_OC1PolarityConfig(TIM1_OCPolarity_High);
TIM1_OC1NPolarityConfig(TIM1_OCNPolarity_High);
TIM1_OC2PolarityConfig(TIM1_OCPolarity_High);
TIM1_OC2NPolarityConfig(TIM1_OCNPolarity_High);
TIM1_OC3PolarityConfig(TIM1_OCPolarity_High);
TIM1_OC3NPolarityConfig(TIM1_OCNPolarity_High);
TIM1_OC4PolarityConfig(TIM1_OCPolarity_High);
TIM1_CCxCmd(TIM1_Channel_4, ENABLE);
TIM1_CCxNCmd(TIM1_Channel_3, ENABLE);
TIM1_SelectOCxM(TIM1_Channel_1, TIM1_OCMode_PWM2);
TIM1_SetCounter(TIM1Counter);
TIM1_SetAutoreload(TIM1Autoreload);
TIM1_SetCompare1(TIM1Compare1);
TIM1_SetCompare2(TIM1Compare2);
TIM1_SetCompare1(TIM1Compare3);
TIM1_SetCompare1(TIM1Compare4);
TIM1_SetIC1Prescaler(TIM1_ICPSC_Div2);
TIM1_SetIC2Prescaler(TIM1_ICPSC_Div2);
TIM1_SetIC3Prescaler(TIM1_ICPSC_Div2);
TIM1_SetIC4Prescaler(TIM1_ICPSC_Div2);
TIM1_SetClockDivision(TIM1_CKD_DIV4);
TIM1_GetCapture1();
TIM1_GetCapture2();
TIM1_GetCapture3();
TIM1_GetCapture4();
TIM1_GetCounter();
TIM1_GetPrescaler();
TIM1_GetFlagStatus(TIM1_FLAG_CC1) == SET;
TIM1_ClearFlag(TIM1_FLAG_CC1);
TIM1_GetITStatus(TIM1_IT_CC1) == SET;
TIM1_ClearITPendingBit(TIM1_IT_CC1);

PS:还有一些外设的寄存器和库函数没有写出来,譬如看门狗(WDG)、备份寄存器(BKP)、CAN、FLASH、PWR等。主要是这些应用相对比较少,其实是我没有用过,所以就没写出来。

  • 43
    点赞
  • 359
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值