当前位置:文档之家› STM32 V3.5固件库函数调用说明(中文版)

STM32 V3.5固件库函数调用说明(中文版)

STM32 V3.5固件库函数调用说明(中文版)
STM32 V3.5固件库函数调用说明(中文版)

目录

目录 (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

相关主题
文本预览
相关文档 最新文档