²¿·Ö¿âº¯Êý¼ò½é
Ò»¡¢Í¨ÓÃÊäÈë/Êä³ö£¨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