STM32¿âº¯ÊýÏé½â ÏÂÔر¾ÎÄ

²¿·Ö¿âº¯Êý¼ò½é

Ò»¡¢Í¨ÓÃÊäÈë/Êä³ö£¨GPIO£©--------------------------------------------------------------------------------------------3 ¶þ¡¢ÍⲿÖжÏ/ʼþ¿ØÖÆÆ÷£¨EXTI£©-----------------------------------------------------------------------------------7 Èý¡¢Í¨Óö¨Ê±Æ÷£¨TIM£©-------------------------------------------------------------------------------------------------9 ËÄ£ºADC¼Ä´æÆ÷------------------------------------------------------------------------25

Î壺±¸·Ý¼Ä´æÆ÷£¨BKP£©-------------------------------------------------------------------------------------------------33 Áù¡¢DMA¿ØÖÆÆ÷£¨DMA£©---------------------------------------------------------------37

Æß¡¢¸´Î»ºÍʱÖÓÉèÖã¨RCC£©------------------------------------------------------------------------------------------41 °Ë¡¢Ç¶Ì×ÏòÁ¿ÖжϿØÖÆÆ÷£¨NVIC£©-----------------------------------------------------------------------------------49

1

ÃüÃû¹æÔò

ÔÚº¯ÊýÃûÖУ¬Ö»ÔÊÐí´æÔÚÒ»¸öÏ»®Ïߣ¬ÓÃÒÔ·Ö¸ôÍâÉèËõдºÍº¯ÊýÃûµÄÆäËü²¿·Ö¡£

ÃûΪPPP_InitµÄº¯Êý£¬Æ书ÄÜÊǸù¾ÝPPP_InitTypeDefÖÐÖ¸¶¨µÄ²ÎÊý£¬³õʼ»¯ÍâÉèPPP£¬ÀýÈçTIM_Init.

ÃûΪPPP_DeInitµÄº¯Êý£¬Æ书ÄÜΪ¸´Î»ÍâÉèPPPµÄËùÓмĴæÆ÷ÖÁȱʡֵ£¬ÀýÈçTIM_DeInit.

ÃûΪPPP_StructInitµÄº¯Êý£¬Æ书ÄÜΪͨ¹ýÉèÖÃPPP_InitTypeDef ½á¹¹Öеĸ÷ÖÖ²ÎÊýÀ´¶¨ÒåÍâÉèµÄ¹¦ÄÜ£¬ÀýÈ磺

USART_StructInit

ÃûΪPPP_CmdµÄº¯Êý£¬Æ书ÄÜΪʹÄÜ»òÕßʧÄÜÍâÉèPPP£¬ÀýÈ磺 SPI_Cmd.

ÃûΪPPP_ITConfigµÄº¯Êý£¬Æ书ÄÜΪʹÄÜ»òÕßʧÄÜÀ´×ÔÍâÉèPPPijÖжÏÔ´£¬ÀýÈ磺 RCC_ITConfig.

ÃûΪPPP_DMAConfigµÄº¯Êý£¬Æ书ÄÜΪʹÄÜ»òÕßʧÄÜÍâÉèPPPµÄDMA½Ó¿Ú£¬ÀýÈ磺TIM1_DMAConfig. ÓÃÒÔÅäÖÃÍâÉ蹦Äܵĺ¯Êý£¬×ÜÊÇÒÔ×Ö·û´®¡°Config¡±½á⣬ÀýÈçGPIO_PinRemapConfig.

ÃûΪPPP_GetFlagStatusµÄº¯Êý£¬Æ书ÄÜΪ¼ì²éÍâÉèPPPij±ê־λ±»ÉèÖÃÓë·ñ£¬ÀýÈ磺I2C_GetFlagStatus.

ÃûΪPPP_ClearFlagµÄº¯Êý£¬Æ书ÄÜΪÇå³ýÍâÉèPPP±ê־룬ÀýÈ磺I2C_ClearFlag.

ÃûΪPPP_GetITStatusµÄº¯Êý£¬Æ书ÄÜΪÅжÏÀ´×ÔÍâÉèPPPµÄÖжϷ¢ÉúÓë·ñ£¬ÀýÈ磺I2C_GetITStatus.

ÃûΪPPP_ClearITPendingBitµÄº¯Êý£¬Æ书ÄÜΪÇå³ýÍâÉèPPPÖжϴý´¦Àí±ê־룬ÀýÈ磺 I2C_ClearITPendingBit.

typedef signed long s32; typedef signed short s16; typedef signed char s8;

typedef signed long const sc32; /* Read Only */ typedef signed short const sc16; /* Read Only */ typedef signed char const sc8; /* Read Only */ typedef volatile signed long vs32; typedef volatile signed short vs16; typedef volatile signed char vs8;

2

typedef volatile signed long const vsc32; /* Read Only */ typedef volatile signed short const vsc16; /* Read Only */ typedef volatile signed char const vsc8; /* Read Only */ typedef unsigned long u32; typedef unsigned short u16; typedef unsigned char u8;

typedef unsigned long const uc32; /* Read Only */ typedef unsigned short const uc16; /* Read Only */ typedef unsigned char const uc8; /* Read Only */ typedef volatile unsigned long vu32; typedef volatile unsigned short vu16; typedef volatile unsigned char vu8;

typedef volatile unsigned long const vuc32; /* Read Only */ typedef volatile unsigned short const vuc16; /* Read Only */ typedef volatile unsigned char const vuc8; /* Read Only */

Ò»¡¢Í¨ÓÃÊäÈë/Êä³ö£¨GPIO£©

GPIO¼Ä´æÆ÷½á¹¹

GPIO_TypeDefºÍAFIO_TypeDef£¬ÔÚÎļþ¡°stm32f10x_map.h¡±Öж¨ÒåÈçÏ£º

typedef struct {

vu32 CRL; vu32 CRH; vu32 IDR; vu32 ODR; vu32 BSRR; vu32 BRR; vu32 LCKR; }

GPIO_TypeDef; typedef struct {

vu32 EVCR; vu32 MAPR; vu32 EXTICR[4]; }

AFIO_TypeDef;

3

GPIO¿âº¯Êý

1 º¯ÊýGPIO_DeInit

¹¦ÄÜÃèÊö£º½«ÍâÉèGPIOx¼Ä´æÆ÷ÖØÉèΪȱʡֵ Àý£º

GPIO_DeInit(GPIOA);

2 º¯ÊýGPIO_AFIODeInit

¹¦ÄÜÃèÊö£º½«¸´Óù¦ÄÜ£¨ÖØÓ³Éäʼþ¿ØÖƺÍEXTIÉèÖã©ÖØÉèΪȱʡֵ Àý£º

GPIO_AFIODeInit();

3 º¯ÊýGPIO_Init

¹¦ÄÜÃèÊö£º¸ù¾ÝGPIO_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèGPIOx¼Ä´æÆ÷ Àý£º

GPIO_InitTypeDef GPIO_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_InitTypeDef structure

GPIO_InitTypeDef¶¨ÒåÓÚÎļþ¡°stm32f10x_gpio.h¡±£º

typedef struct {

u16 GPIO_Pin;

GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }

GPIO_InitTypeDef;

GPIO_Pin

¸Ã²ÎÊýÑ¡Ôñ´ýÉèÖõÄGPIO¹Ü½Å£¬Ê¹ÓòÙ×÷·û¡°|¡±¿ÉÒÔÒ»´ÎÑ¡Öжà¸ö¹Ü½Å¡£¿ÉÒÔʹÓÃϱíÖеÄÈÎÒâ×éºÏ¡£GPIO_Pin_None£ºÎ޹ܽű»Ñ¡ÖÐ GPIO_Pin_x£ºÑ¡ÖйܽÅx£¨0--15£© GPIO_Pin_All£ºÑ¡ÖÐÈ«²¿¹Ü½Å

GPIO_Speed

GPIO_Speed£ºÓÃÒÔÉèÖÃÑ¡ÖйܽŵÄËÙÂÊ¡£ GPIO_Speed_10MHz£º×î¸ßÊä³öËÙÂÊ10MHz GPIO_Speed_2MHz£º×î¸ßÊä³öËÙÂÊ2MHz

4