目录
目录 (1)
1.变量定义 (4)
2.GPIO相关函数 (5)
2.1.函数GPIO_Init (5)
2.2.函数GPIO_SetBits (6)
2.3.函数GPIO_ReadInputDataBit (7)
2.4.函数GPIO_ReadOutputDataBit (7)
2.5.函数GPIO_PinRemapConfig (8)
2.6.函数GPIO_Write (9)
2.7.函数GPIO_ReadInputData (10)
3.RCC相关函数 (10)
3.1.函数RCC_APB2PeriphClockCmd (10)
3.2.函数RCC_APB1PeriphClockCmd (11)
3.3.函数RCC_AHBPeriphClockCmd (12)
3.4.函数RCC_ADCCLKConfig (12)
4.SysTick函数——SysTick_Config (12)
5.NVIC相关函数 (14)
5.1.函数NVIC_Init (14)
5.2.函数NVIC_PriorityGroupConfig (17)
5.3.函数NVIC_SetPriority (17)
6.EXTI相关函数 (17)
6.1.函数GPIO_EXTILineConfig (17)
6.2.函数EXIT_Init (18)
6.3.函数EXTI_GetITStatus (19)
6.4.函数EXTI_ClearITPendingBit (19)
https://www.doczj.com/doc/9611422171.html,ART相关函数 (20)
7.2.函数USART_Cmd (21)
7.3.函数USART_SendData (21)
7.4.函数USART_ReceiveData (22)
7.5.函数USART_GetFlagStatus (22)
8.6.函数USART_ITConfig (23)
8.7.函数USART_GetITStatus (23)
8.8.函数USART_ClearFlag (24)
8.9.函数USART_ClearITPendingBit (24)
8.TIM相关函数 (24)
8.1.函数TIM_TimeBaseInit (24)
8.2.函数TIM_DeInit (26)
8.3.函数TIM_ITConfig (26)
8.4.函数TIM_Cmd (27)
8.5.函数TIM_GetITStatus (28)
8.6.函数TIM_ClearITPendingBit (28)
8.7.函数TIM_ARRPreloadConfig (29)
8.8.函数TIM_OCxInit (29)
8.9.函数TIM_OCxPreloadConfig (30)
9.I2C相关函数 (31)
9.1.函数I2C_Init (31)
9.2.函数I2C_CheckEvent (32)
9.3.函数I2C_GetFlagStatus (33)
9.4.函数I2C_GenerateSTART (34)
9.5.函数I2C_ SendData (35)
9.6.函数I2C_ ReceiveData (35)
9.7.函数I2C_ Send7bitAddress (35)
9.8.函数I2C_ GenerateSTOP (36)
10.DMA相关函数 (36)
10.1.函数DMA_DeInit (36)
10.2.函数DMA_Init (37)
10.3.函数DMA_Cmd (38)
11.ADC相关函数 (39)
11.1.函数ADC_Init (39)
11.2.函数ADC_RegularChannelConfig (40)
11.3.函数ADC_DMACmd (41)
11.4.函数ADC_ResetCalibration (42)
11.5.函数ADC_GetResetCalibrationStatus (42)
11.6.函数ADC_StartCalibration (42)
11.7.函数ADC_GetCalibrationStatus (42)
11.8.函数ADC_SoftwareStartConvCmd (43)
11.9.函数ADC_TampSensorVrefintCmd (43)
1.变量定义
CMSIS IO类型限定词
固件库与CMSIS数据类型对比
注:
__IO表示告诉编译器这个变量存在RAM中。而普通的没有__IO的为寄存器变量。
2.GPIO相关函数2.1.函数GPIO_Init
2.2.函数GPIO_SetBits
2.3.函数GPIO_ResetBits
例:GPIO_ResetBits(GPIOA,GPIO_Pin_6);
2.4.函数GPIO_ReadInputDataBit
2.5.函数GPIO_ReadOutputDataBit
2.5.函数GPIO_PinRemapConfig
GPIO_Remap_SPI1 : SPI1 Alternate Function mapping
GPIO_Remap_I2C1 : I2C1 Alternate Function mapping
GPIO_Remap_USART1 : USART1 Alternate Function mapping
GPIO_Remap_USART2 : USART2 Alternate Function mapping
GPIO_PartialRemap_USART3 : USART3 Partial Alternate Function mapping
GPIO_FullRemap_USART3 : USART3 Full Alternate Function mapping
GPIO_PartialRemap_TIM1 : TIM1 Partial Alternate Function mapping
GPIO_FullRemap_TIM1 : TIM1 Full Alternate Function mapping
GPIO_PartialRemap1_TIM2 : TIM2 Partial1 Alternate Function mapping
GPIO_PartialRemap2_TIM2 : TIM2 Partial2 Alternate Function mapping
GPIO_FullRemap_TIM2 : TIM2 Full Alternate Function mapping
GPIO_PartialRemap_TIM3 : TIM3 Partial Alternate Function mapping
GPIO_FullRemap_TIM3 : TIM3 Full Alternate Function mapping
GPIO_Remap_TIM4 : TIM4 Alternate Function mapping
GPIO_Remap1_CAN1 : CAN1 Alternate Function mapping
GPIO_Remap2_CAN1 : CAN1 Alternate Function mapping
GPIO_Remap_PD01 : PD01 Alternate Function mapping
GPIO_Remap_TIM5CH4_LSI : LSI connected to TIM5 Channel4 input capture for calibration
GPIO_Remap_ADC1_ETRGINJ : ADC1 External Trigger Injected Conversion remapping
GPIO_Remap_ADC1_ETRGREG : ADC1 External Trigger Regular Conversion remapping
GPIO_Remap_ADC2_ETRGINJ : ADC2 External Trigger Injected Conversion remapping
GPIO_Remap_ADC2_ETRGREG : ADC2 External Trigger Regular Conversion remapping
GPIO_Remap_ETH : Ethernet remapping (only for Connectivity line devices)
GPIO_Remap_CAN2 : CAN2 remapping (only for Connectivity line devices)
GPIO_Remap_SWJ_NoJTRST : Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST
GPIO_Remap_SWJ_JTAGDisable : JTAG-DP Disabled and SW-DP Enabled
GPIO_Remap_SWJ_Disable : Full SWJ Disabled (JTAG-DP + SW-DP)
GPIO_Remap_SPI3 : SPI3/I2S3 Alternate Function mapping (only for Connectivity line devices)
When the SPI3/I2S3 is remapped using this function, the SWJ is configured
to Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST.
GPIO_Remap_TIM2ITR1_PTP_SOF : Ethernet PTP output or USB OTG SOF (Start of Frame) connected
to TIM2 Internal Trigger 1 for calibration (only for Connectivity line devices)
If the GPIO_Remap_TIM2ITR1_PTP_SOF is enabled the TIM2 ITR1 is
connected
to Ethernet PTP output. When Reset TIM2 ITR1 is connected to USB OTG SOF
output.
GPIO_Remap_PTP_PPS : Ethernet MAC PPS_PTS output on PB05 (only for Connectivity line
devices)
GPIO_Remap_TIM15 : TIM15 Alternate Function mapping (only for Value line devices)
GPIO_Remap_TIM16 : TIM16 Alternate Function mapping (only for Value line devices)
GPIO_Remap_TIM17 : TIM17 Alternate Function mapping (only for Value line devices)
GPIO_Remap_CEC : CEC Alternate Function mapping (only for Value line devices)
GPIO_Remap_TIM1_DMA : TIM1 DMA requests mapping (only for Value line devices)
GPIO_Remap_TIM9 : TIM9 Alternate Function mapping (only for XL-density devices)
GPIO_Remap_TIM10 : TIM10 Alternate Function mapping (only for XL-density devices)
GPIO_Remap_TIM11 : TIM11 Alternate Function mapping (only for XL-density devices)
GPIO_Remap_TIM13 : TIM13 Alternate Function mapping (only for High density Value line and
XL-density devices)
GPIO_Remap_TIM14 : TIM14 Alternate Function mapping (only for High density Value line and
XL-density devices)
GPIO_Remap_FSMC_NADV : FSMC_NADV Alternate Function mapping (only for High density Value line
and XL-density devices)
GPIO_Remap_TIM67_DAC_DMA : TIM6/TIM7 and DAC DMA requests remapping (only for High density
Value
line devices)
GPIO_Remap_TIM12 : TIM12 Alternate Function mapping (only for High density Value line
devices)
GPIO_Remap_MISC : Miscellaneous Remap (DMA2 Channel5 Position and DAC Trigger
remapping,
2.6.函数GPIO_Write
2.7.函数GPIO_ReadInputData
3.RCC相关函数
3.1.函数RCC_APB2PeriphClockCmd
3.2.函数RCC_APB1PeriphClockCmd
3.3.函数RCC_AHBPeriphClockCmd
3.4.函数RCC_ADCCLKConfig
4.SysTick函数——SysTick_Config
3.0版以后的STM32固件库在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。
注意:
SysTick_Config()是有返回值的,当设置的计数值(即括号内的值,如“SystemCoreClock / 1000”)不符合要求时(例如设置值超过24位时,就会返回1)就返回1,否则返回0.所以:
if (SysTick_Config(SystemCoreClock / 1000))
{
/* Capture error */
while (1);
}
上面这种写法是种容错手段。若是SysTick_Config()设置正确,那就可以继续执行下面的语句,否则的话就陷入死循环,不再继续执行。
5.NVIC相关函数
5.1.函数NVIC_Init
全部中断名称如下:
注意:先占优先级又叫抢占优先级,只有该优先级比较高才能打断当前中断服务程序。从优先级又叫响应优先级,该优先级比较高只是针对同时发出中断请求时,优先相应从优先级高的中断。
示例:
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); //设置中断优先级组
NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQn; //外部中断4初始化
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn; //中断10初始化
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=6;
NVIC_Init(&NVIC_InitStructure);
5.2.函数NVIC_PriorityGroupConfig
5.3.函数NVIC_SetPriority
此函数用于设置中断优先级。调用格式如下:
NVIC_SetPriority(SysTick_IRQn, n);
其中,第一个参数为中断类型。第二个参数为优先级(0-15,0最高,15最低)。
NVIC_SetPriority(SysTick_IRQn,7); //设置SysTick_IRQn抢占优先级为7
6.EXTI相关函数
6.1.函数GPIO_EXTILineConfig
注:设置外部中断时,需要开启端口的AFIO复用时钟。
6.2.函数EXIT_Init
6.3.函数EXTI_GetITStatus
用在刚进入中断服务程序确定中断是否发生。为SET表示该中断确实发生,为RESET表示中断没有发生。
6.4.函数EXTI_ClearITPendingBit
注意:该函数在退出中断服务程序前必须使用,用于清除中断标志位。
https://www.doczj.com/doc/9611422171.html,ART相关函数
注意:说明一点,就是除了串口1的时钟使能在APB2ENR寄存器,其他串口的时钟使能位都在APB1ENR。
7.1.函数USART_Init
USART初始化函数USART_Init指向结构体USART_InitTypeDef,其成员定义如下:USART_BaudRate:设置波特率,如9600,115200等。
USART_WordLength:设置数据长度。
具体值:USART_WordLength_8b或USART_WordLength_9b