在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            詳解STM32F10x頭文件

            作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
            IAR軟件main.c文件中函數(shù)先后安排順序,我一般將主函數(shù)放到最后,調(diào)用的函數(shù)放在上面。這樣可以省去了被調(diào)函數(shù)的聲明。
            以GPIO為例,main.c中只需包含一個(gè)文件:stm32f10x_lib.h
            /* Includes ------------------------------------------------------------------*/
            #include "stm32f10x_lib.h"

            /*******************************************************************************
            * Function Name : RCC_Configuration
            * Description : Configures the different system clocks.
            * Input : None
            * Output : None
            * Return : None
            *******************************************************************************/
            void RCC_Configuration(void)
            {
            ErrorStatus HSEStartUpStatus;

            /* RCC system reset(for debug purpose) */
            RCC_DeInit();

            /* Enable HSE */
            RCC_HSEConfig(RCC_HSE_ON);

            /* Wait till HSE is ready */
            HSEStartUpStatus = RCC_WaitForHSEStartUp();

            if(HSEStartUpStatus == SUCCESS)
            {
            /* Enable Prefetch Buffer */
            FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

            /* Flash 2 wait state */
            FLASH_SetLatency(FLASH_Latency_2);

            /* HCLK = SYSCLK */
            RCC_HCLKConfig(RCC_SYSCLK_Div1);

            /* PCLK2 = HCLK */
            RCC_PCLK2Config(RCC_HCLK_Div1);

            /* PCLK1 = HCLK/2 */
            RCC_PCLK1Config(RCC_HCLK_Div2);

            /* PLLCLK = 8MHz * 9 = 72 MHz */
            RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

            /* Enable PLL */
            RCC_PLLCmd(ENABLE);

            /* Wait till PLL is ready */
            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
            {
            }

            /* Select PLL as system clock source */
            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

            /* Wait till PLL is used as system clock source */
            while(RCC_GetSYSCLKSource() != 0x08)
            {
            }
            }
            }

            /*******************************************************************************
            * Function Name : NVIC_Configuration
            * Description : Configures Vector Table base location.
            * Input : None
            * Output : None
            * Return : None
            *******************************************************************************/
            void NVIC_Configuration(void)
            {
            #ifdef VECT_TAB_RAM
            /* Set the Vector Table base location at 0x20000000 */
            NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
            #else /* VECT_TAB_FLASH */
            /* Set the Vector Table base location at 0x08000000 */
            NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
            #endif
            }

            /*******************************************************************************
            * Function Name : GPIO_Configuration
            * Description : Configures the different GPIO ports.
            * Input : None
            * Output : None
            * Return : None
            *******************************************************************************/
            void GPIO_Configuration(void)
            {
            /* Enable GPIOC clock */
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

            GPIO_InitTypeDef GPIO_InitStructure;

            /* Configure PC.06, PC.07, PC.08 and PC.09 as Output push-pull */
            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
            GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
            GPIO_Init(GPIOC, &GPIO_InitStructure);
            }

            /*******************************************************************************
            * Function Name : Delay
            * Description : Inserts a delay time.
            * Input : nCount: specifies the delay time length.
            * Output : None
            * Return : None
            *******************************************************************************/
            void Delay(vu32 nCount)
            {
            for(; nCount != 0; nCount--);
            }

            #ifdef DEBUG
            /*******************************************************************************
            * Function Name : assert_failed
            * Description : Reports the name of the source file and the source line number
            * where the assert_param error has occurred.
            * Input : - file: pointer to the source file name
            * - line: assert_param error line source number
            * Output : None
            * Return : None
            *******************************************************************************/
            void assert_failed(u8* file, u32 line)
            {
            /* User can add his own implementation to report the file name and line number,
            ex: printf("Wrong parameters value: file %s on line %drn", file, line) */

            /* Infinite loop */
            while (1)
            {
            }
            }
            #endif

            /*******************************************************************************
            * Function Name : main
            * Description : Main program.
            * Input : None
            * Output : None
            * Return : None
            *******************************************************************************/
            int main(void)
            {
            #ifdef DEBUG
            debug();
            #endif

            /* Configure the system clocks */
            RCC_Configuration();

            /* NVIC Configuration */
            NVIC_Configuration();

            /* Configure the GPIO ports */
            GPIO_Configuration();

            /* Infinite loop */
            while (1)
            {
            GPIO_SetBits(GPIOC,GPIO_Pin_6);//點(diǎn)亮LED1
            Delay(1000000);
            Delay(1000000);//多點(diǎn)亮一會(huì),使人能看到LED的確切變化
            GPIO_ResetBits(GPIOC,GPIO_Pin_6);//熄滅LED1

            GPIO_SetBits(GPIOC,GPIO_Pin_7);//點(diǎn)亮LED2
            Delay(1000000);
            Delay(1000000);
            GPIO_ResetBits(GPIOC,GPIO_Pin_7);//熄滅LED2

            GPIO_SetBits(GPIOC,GPIO_Pin_8);//點(diǎn)亮LED3
            Delay(1000000);
            Delay(1000000);
            GPIO_ResetBits(GPIOC,GPIO_Pin_8);//熄滅LED3

            GPIO_SetBits(GPIOC,GPIO_Pin_9);//點(diǎn)亮LED4
            Delay(1000000);
            Delay(1000000);
            GPIO_ResetBits(GPIOC,GPIO_Pin_9);//熄滅LED4
            }
            }
            首先,main函數(shù)中的debug()函數(shù)是在哪定義的呢?是在stm32f10x_lib.c中定義的。

            #ifdef DEBUG
            /*******************************************************************************
            * Function Name : debug
            * Description : This function initialize peripherals pointers.
            * Input : None
            * Output : None
            * Return : None
            *******************************************************************************/
            void debug(void)
            {

            /************************************* ADC ************************************/
            #ifdef _ADC1
            ADC1 = (ADC_TypeDef *) ADC1_BASE;
            #endif /*_ADC1 */

            #ifdef _ADC2
            ADC2 = (ADC_TypeDef *) ADC2_BASE;
            #endif /*_ADC2 */

            /************************************* BKP ************************************/
            #ifdef _BKP
            BKP = (BKP_TypeDef *) BKP_BASE;
            #endif /*_BKP */

            /************************************* CAN ************************************/
            #ifdef _CAN
            CAN = (CAN_TypeDef *) CAN_BASE;
            #endif /*_CAN */

            /************************************* DMA ************************************/
            #ifdef _DMA
            DMA = (DMA_TypeDef *) DMA_BASE;
            #endif /*_DMA */

            #ifdef _DMA_Channel1
            DMA_Channel1 = (DMA_Channel_TypeDef *) DMA_Channel1_BASE;
            #endif /*_DMA_Channel1 */

            #ifdef _DMA_Channel2
            DMA_Channel2 = (DMA_Channel_TypeDef *) DMA_Channel2_BASE;
            #endif /*_DMA_Channel2 */

            #ifdef _DMA_Channel3
            DMA_Channel3 = (DMA_Channel_TypeDef *) DMA_Channel3_BASE;
            #endif /*_DMA_Channel3 */

            #ifdef _DMA_Channel4
            DMA_Channel4 = (DMA_Channel_TypeDef *) DMA_Channel4_BASE;
            #endif /*_DMA_Channel4 */

            #ifdef _DMA_Channel5
            DMA_Channel5 = (DMA_Channel_TypeDef *) DMA_Channel5_BASE;
            #endif /*_DMA_Channel5 */

            #ifdef _DMA_Channel6
            DMA_Channel6 = (DMA_Channel_TypeDef *) DMA_Channel6_BASE;
            #endif /*_DMA_Channel6 */

            #ifdef _DMA_Channel7
            DMA_Channel7 = (DMA_Channel_TypeDef *) DMA_Channel7_BASE;
            #endif /*_DMA_Channel7 */

            /************************************* EXTI ***********************************/
            #ifdef _EXTI
            EXTI = (EXTI_TypeDef *) EXTI_BASE;
            #endif /*_EXTI */

            /************************************* FLASH and Option Bytes *****************/
            #ifdef _FLASH
            FLASH = (FLASH_TypeDef *) FLASH_BASE;
            OB = (OB_TypeDef *) OB_BASE;
            #endif /*_FLASH */

            /************************************* GPIO ***********************************/
            #ifdef _GPIOA
            GPIOA = (GPIO_TypeDef *) GPIOA_BASE;
            #endif /*_GPIOA */

            #ifdef _GPIOB
            GPIOB = (GPIO_TypeDef *) GPIOB_BASE;
            #endif /*_GPIOB */

            #ifdef _GPIOC
            GPIOC = (GPIO_TypeDef *) GPIOC_BASE;
            #endif /*_GPIOC */

            #ifdef _GPIOD
            GPIOD = (GPIO_TypeDef *) GPIOD_BASE;
            #endif /*_GPIOD */

            #ifdef _GPIOE
            GPIOE = (GPIO_TypeDef *) GPIOE_BASE;
            #endif /*_GPIOE */

            #ifdef _AFIO
            AFIO = (AFIO_TypeDef *) AFIO_BASE;
            #endif /*_AFIO */

            /************************************* I2C ************************************/
            #ifdef _I2C1
            I2C1 = (I2C_TypeDef *) I2C1_BASE;
            #endif /*_I2C1 */

            #ifdef _I2C2
            I2C2 = (I2C_TypeDef *) I2C2_BASE;
            #endif /*_I2C2 */

            /************************************* IWDG ***********************************/
            #ifdef _IWDG
            IWDG = (IWDG_TypeDef *) IWDG_BASE;
            #endif /*_IWDG */

            /************************************* NVIC ***********************************/
            #ifdef _NVIC
            NVIC = (NVIC_TypeDef *) NVIC_BASE;
            SCB = (SCB_TypeDef *) SCB_BASE;
            #endif /*_NVIC */

            /************************************* PWR ************************************/
            #ifdef _PWR
            PWR = (PWR_TypeDef *) PWR_BASE;
            #endif /*_PWR */

            /************************************* RCC ************************************/
            #ifdef _RCC
            RCC = (RCC_TypeDef *) RCC_BASE;
            #endif /*_RCC */

            /************************************* RTC ************************************/
            #ifdef _RTC
            RTC = (RTC_TypeDef *) RTC_BASE;
            #endif /*_RTC */

            /************************************* SPI ************************************/
            #ifdef _SPI1
            SPI1 = (SPI_TypeDef *) SPI1_BASE;
            #endif /*_SPI1 */

            #ifdef _SPI2
            SPI2 = (SPI_TypeDef *) SPI2_BASE;
            #endif /*_SPI2 */

            /************************************* SysTick ********************************/
            #ifdef _SysTick
            SysTick = (SysTick_TypeDef *) SysTick_BASE;
            #endif /*_SysTick */

            /************************************* TIM1 ***********************************/
            #ifdef _TIM1
            TIM1 = (TIM1_TypeDef *) TIM1_BASE;
            #endif /*_TIM1 */

            /************************************* TIM ************************************/
            #ifdef _TIM2
            TIM2 = (TIM_TypeDef *) TIM2_BASE;
            #endif /*_TIM2 */

            #ifdef _TIM3
            TIM3 = (TIM_TypeDef *) TIM3_BASE;
            #endif /*_TIM3 */

            #ifdef _TIM4
            TIM4 = (TIM_TypeDef *) TIM4_BASE;
            #endif /*_TIM4 */

            /************************************* USART **********************************/
            #ifdef _USART1
            USART1 = (USART_TypeDef *) USART1_BASE;
            #endif /*_USART1 */

            #ifdef _USART2
            USART2 = (USART_TypeDef *) USART2_BASE;
            #endif /*_USART2 */

            #ifdef _USART3
            USART3 = (USART_TypeDef *) USART3_BASE;
            #endif /*_USART3 */

            /************************************* WWDG ***********************************/
            #ifdef _WWDG
            WWDG = (WWDG_TypeDef *) WWDG_BASE;
            #endif /*_WWDG */
            }
            #endif /* DEBUG*/

            本文引用地址:http://www.biyoush.com/article/201611/317022.htm這個(gè)看著比較熟悉,好像在哪見過(guò),沒錯(cuò),在stm32f10x_map.h中就有這些定義,這就是為什么,在stm32f10x_config.h中將DEBUF宏定義注釋起來(lái)時(shí),也能編譯過(guò)去的原因。

            在stm32f10x_lib.h上右擊鼠標(biāo),open “stm32f10x_lib.h”,該文件包含了其他所有頭文件,而其他所需頭文件自動(dòng)加入。
            標(biāo)示符:_ADC,表示如果定義了_ADC,在stm32f10x_lib.h就包含stm32f10x_adc.h,否則,不包含stm32f10x_adc.h,那么,標(biāo)示符_ADC是在哪定義的呢?是在stm32f10x_conf.h中定義的。

            /* Includes ------------------------------------------------------------------*/
            #include "stm32f10x_map.h"
            #ifdef _ADC
            #include "stm32f10x_adc.h"
            #endif /*_ADC */
            #ifdef _BKP
            #include "stm32f10x_bkp.h"
            #endif /*_BKP */
            #ifdef _CAN
            #include "stm32f10x_can.h"
            #endif /*_CAN */
            #ifdef _DMA
            #include "stm32f10x_dma.h"
            #endif /*_DMA */
            #ifdef _EXTI
            #include "stm32f10x_exti.h"
            #endif /*_EXTI */
            #ifdef _FLASH
            #include "stm32f10x_flash.h"
            #endif /*_FLASH */
            #ifdef _GPIO
            #include "stm32f10x_gpio.h"
            #endif /*_GPIO */
            #ifdef _I2C
            #include "stm32f10x_i2c.h"
            #endif /*_I2C */
            #ifdef _IWDG
            #include "stm32f10x_iwdg.h"
            #endif /*_IWDG */
            #ifdef _NVIC
            #include "stm32f10x_nvic.h"
            #endif /*_NVIC */
            #ifdef _PWR
            #include "stm32f10x_pwr.h"
            #endif /*_PWR */
            #ifdef _RCC
            #include "stm32f10x_rcc.h"
            #endif /*_RCC */
            #ifdef _RTC
            #include "stm32f10x_rtc.h"
            #endif /*_RTC */
            #ifdef _SPI
            #include "stm32f10x_spi.h"
            #endif /*_SPI */
            #ifdef _SysTick
            #include "stm32f10x_systick.h"
            #endif /*_SysTick */
            #ifdef _TIM1
            #include "stm32f10x_tim1.h"
            #endif /*_TIM1 */
            #ifdef _TIM
            #include "stm32f10x_tim.h"
            #endif /*_TIM */
            #ifdef _USART
            #include "stm32f10x_usart.h"
            #endif /*_USART */
            #ifdef _WWDG
            #include "stm32f10x_wwdg.h"
            #endif /*_WWDG */

            在stm32f10x_map.h上右擊鼠標(biāo),open “stm32f10x_map.h”,打開stm32f10x_map.h文件。
            stm32f10x_map.h文件定義了所有外設(shè)的寄存器數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)器映像。

            /* Includes ------------------------------------------------------------------*/
            #include "stm32f10x_conf.h"
            #include "stm32f10x_type.h"
            #include "cortexm3_macro.h"

            /* Exported types ------------------------------------------------------------*/
            /******************************************************************************/
            /* Peripheral registers structures */
            /******************************************************************************/

            /*------------------------ Analog to Digital Converter -----------------------*/
            typedef struct
            {
            vu32 SR;
            vu32 CR1;
            vu32 CR2;
            vu32 SMPR1;
            vu32 SMPR2;
            vu32 JOFR1;
            vu32 JOFR2;
            vu32 JOFR3;
            vu32 JOFR4;
            vu32 HTR;
            vu32 LTR;
            vu32 SQR1;
            vu32 SQR2;
            vu32 SQR3;
            vu32 JSQR;
            vu32 JDR1;
            vu32 JDR2;
            vu32 JDR3;
            vu32 JDR4;
            vu32 DR;
            } ADC_TypeDef;

            /*------------------------ Backup Registers ----------------------------------*/
            typedef struct
            {
            u32 RESERVED0;
            vu16 DR1;
            u16 RESERVED1;
            vu16 DR2;
            u16 RESERVED2;
            vu16 DR3;
            u16 RESERVED3;
            vu16 DR4;
            u16 RESERVED4;
            vu16 DR5;
            u16 RESERVED5;
            vu16 DR6;
            u16 RESERVED6;
            vu16 DR7;
            u16 RESERVED7;
            vu16 DR8;
            u16 RESERVED8;
            vu16 DR9;
            u16 RESERVED9;
            vu16 DR10;
            u16 RESERVED10;
            vu16 RTCCR;
            u16 RESERVED11;
            vu16 CR;
            u16 RESERVED12;
            vu16 CSR;
            u16 RESERVED13;
            } BKP_TypeDef;

            /*------------------------ Controller Area Network ---------------------------*/
            typedef struct
            {
            vu32 TIR;
            vu32 TDTR;
            vu32 TDLR;
            vu32 TDHR;
            } CAN_TxMailBox_TypeDef;

            typedef struct
            {
            vu32 RIR;
            vu32 RDTR;
            vu32 RDLR;
            vu32 RDHR;
            } CAN_FIFOMailBox_TypeDef;

            typedef struct
            {
            vu32 FR0;
            vu32 FR1;
            } CAN_FilterRegister_TypeDef;

            typedef struct
            {
            vu32 MCR;
            vu32 MSR;
            vu32 TSR;
            vu32 RF0R;
            vu32 RF1R;
            vu32 IER;
            vu32 ESR;
            vu32 BTR;
            u32 RESERVED0[88];
            CAN_TxMailBox_TypeDef sTxMailBox[3];
            CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
            u32 RESERVED1[12];
            vu32 FMR;
            vu32 FM0R;
            u32 RESERVED2[1];
            vu32 FS0R;
            u32 RESERVED3[1];
            vu32 FFA0R;
            u32 RESERVED4[1];
            vu32 FA0R;
            u32 RESERVED5[8];
            CAN_FilterRegister_TypeDef sFilterRegister[14];
            } CAN_TypeDef;

            /*------------------------ DMA Controller ------------------------------------*/
            typedef struct
            {
            vu32 CCR;
            vu32 CNDTR;
            vu32 CPAR;
            vu32 CMAR;
            } DMA_Channel_TypeDef;

            typedef struct
            {
            vu32 ISR;
            vu32 IFCR;
            } DMA_TypeDef;

            /*------------------------ External Interrupt/Event Controller ---------------*/
            typedef struct
            {
            vu32 IMR;
            vu32 EMR;
            vu32 RTSR;
            vu32 FTSR;
            vu32 SWIER;
            vu32 PR;
            } EXTI_TypeDef;

            /*------------------------ FLASH and Option Bytes Registers ------------------*/
            typedef struct
            {
            vu32 ACR;
            vu32 KEYR;
            vu32 OPTKEYR;
            vu32 SR;
            vu32 CR;
            vu32 AR;
            vu32 RESERVED;
            vu32 OBR;
            vu32 WRPR;
            } FLASH_TypeDef;

            typedef struct
            {
            vu16 RDP;
            vu16 USER;
            vu16 Data0;
            vu16 Data1;
            vu16 WRP0;
            vu16 WRP1;
            vu16 WRP2;
            vu16 WRP3;
            } OB_TypeDef;

            /*------------------------ General Purpose and Alternate Function IO ---------*/
            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;

            /*------------------------ Inter-integrated Circuit Interface ----------------*/
            typedef struct
            {
            vu16 CR1;
            u16 RESERVED0;
            vu16 CR2;
            u16 RESERVED1;
            vu16 OAR1;
            u16 RESERVED2;
            vu16 OAR2;
            u16 RESERVED3;
            vu16 DR;
            u16 RESERVED4;
            vu16 SR1;
            u16 RESERVED5;
            vu16 SR2;
            u16 RESERVED6;
            vu16 CCR;
            u16 RESERVED7;
            vu16 TRISE;
            u16 RESERVED8;
            } I2C_TypeDef;

            /*------------------------ Independent WATCHDOG ------------------------------*/
            typedef struct
            {
            vu32 KR;
            vu32 PR;
            vu32 RLR;
            vu32 SR;
            } IWDG_TypeDef;

            /*------------------------ Nested Vectored Interrupt Controller --------------*/
            typedef struct
            {
            vu32 ISER[2];
            u32 RESERVED0[30];
            vu32 ICER[2];
            u32 RSERVED1[30];
            vu32 ISPR[2];
            u32 RESERVED2[30];
            vu32 ICPR[2];
            u32 RESERVED3[30];
            vu32 IABR[2];
            u32 RESERVED4[62];
            vu32 IPR[11];
            } NVIC_TypeDef;

            typedef struct
            {
            vuc32 CPUID;
            vu32 ICSR;
            vu32 VTOR;
            vu32 AIRCR;
            vu32 SCR;
            vu32 CCR;
            vu32 SHPR[3];
            vu32 SHCSR;
            vu32 CFSR;
            vu32 HFSR;
            vu32 DFSR;
            vu32 MMFAR;
            vu32 BFAR;
            vu32 AFSR;
            } SCB_TypeDef;

            /*------------------------ Power Control -------------------------------------*/
            typedef struct
            {
            vu32 CR;
            vu32 CSR;
            } PWR_TypeDef;

            /*------------------------ Reset and Clock Control ---------------------------*/
            typedef struct
            {
            vu32 CR;
            vu32 CFGR;
            vu32 CIR;
            vu32 APB2RSTR;
            vu32 APB1RSTR;
            vu32 AHBENR;
            vu32 APB2ENR;
            vu32 APB1ENR;
            vu32 BDCR;
            vu32 CSR;
            } RCC_TypeDef;

            /*------------------------ Real-Time Clock -----------------------------------*/
            typedef struct
            {
            vu16 CRH;
            u16 RESERVED0;
            vu16 CRL;
            u16 RESERVED1;
            vu16 PRLH;
            u16 RESERVED2;
            vu16 PRLL;
            u16 RESERVED3;
            vu16 DIVH;
            u16 RESERVED4;
            vu16 DIVL;
            u16 RESERVED5;
            vu16 CNTH;
            u16 RESERVED6;
            vu16 CNTL;
            u16 RESERVED7;
            vu16 ALRH;
            u16 RESERVED8;
            vu16 ALRL;
            u16 RESERVED9;
            } RTC_TypeDef;

            /*------------------------ Serial Peripheral Interface -----------------------*/
            typedef struct
            {
            vu16 CR1;
            u16 RESERVED0;
            vu16 CR2;
            u16 RESERVED1;
            vu16 SR;
            u16 RESERVED2;
            vu16 DR;
            u16 RESERVED3;
            vu16 CRCPR;
            u16 RESERVED4;
            vu16 RXCRCR;
            u16 RESERVED5;
            vu16 TXCRCR;
            u16 RESERVED6;
            } SPI_TypeDef;

            /*------------------------ SystemTick ----------------------------------------*/
            typedef struct
            {
            vu32 CTRL;
            vu32 LOAD;
            vu32 VAL;
            vuc32 CALIB;
            } SysTick_TypeDef;

            /*------------------------ Advanced Control Timer ----------------------------*/
            typedef struct
            {
            vu16 CR1;
            u16 RESERVED0;
            vu16 CR2;
            u16 RESERVED1;
            vu16 SMCR;
            u16 RESERVED2;
            vu16 DIER;
            u16 RESERVED3;
            vu16 SR;
            u16 RESERVED4;
            vu16 EGR;
            u16 RESERVED5;
            vu16 CCMR1;
            u16 RESERVED6;
            vu16 CCMR2;
            u16 RESERVED7;
            vu16 CCER;
            u16 RESERVED8;
            vu16 CNT;
            u16 RESERVED9;
            vu16 PSC;
            u16 RESERVED10;
            vu16 ARR;
            u16 RESERVED11;
            vu16 RCR;
            u16 RESERVED12;
            vu16 CCR1;
            u16 RESERVED13;
            vu16 CCR2;
            u16 RESERVED14;
            vu16 CCR3;
            u16 RESERVED15;
            vu16 CCR4;
            u16 RESERVED16;
            vu16 BDTR;
            u16 RESERVED17;
            vu16 DCR;
            u16 RESERVED18;
            vu16 DMAR;
            u16 RESERVED19;
            } TIM1_TypeDef;

            /*------------------------ General Purpose Timer -----------------------------*/
            typedef struct
            {
            vu16 CR1;
            u16 RESERVED0;
            vu16 CR2;
            u16 RESERVED1;
            vu16 SMCR;
            u16 RESERVED2;
            vu16 DIER;
            u16 RESERVED3;
            vu16 SR;
            u16 RESERVED4;
            vu16 EGR;
            u16 RESERVED5;
            vu16 CCMR1;
            u16 RESERVED6;
            vu16 CCMR2;
            u16 RESERVED7;
            vu16 CCER;
            u16 RESERVED8;
            vu16 CNT;
            u16 RESERVED9;
            vu16 PSC;
            u16 RESERVED10;
            vu16 ARR;
            u16 RESERVED11[3];
            vu16 CCR1;
            u16 RESERVED12;
            vu16 CCR2;
            u16 RESERVED13;
            vu16 CCR3;
            u16 RESERVED14;
            vu16 CCR4;
            u16 RESERVED15[3];
            vu16 DCR;
            u16 RESERVED16;
            vu16 DMAR;
            u16 RESERVED17;
            } TIM_TypeDef;

            /*----------------- Universal Synchronous Asynchronous Receiver Transmitter --*/
            typedef struct
            {
            vu16 SR;
            u16 RESERVED0;
            vu16 DR;
            u16 RESERVED1;
            vu16 BRR;
            u16 RESERVED2;
            vu16 CR1;
            u16 RESERVED3;
            vu16 CR2;
            u16 RESERVED4;
            vu16 CR3;
            u16 RESERVED5;
            vu16 GTPR;
            u16 RESERVED6;
            } USART_TypeDef;

            /*------------------------ Window WATCHDOG -----------------------------------*/
            typedef struct
            {
            vu32 CR;
            vu32 CFR;
            vu32 SR;
            } WWDG_TypeDef;

            /******************************************************************************/
            /* Peripheral memory map */
            /******************************************************************************/
            /* Peripheral and SRAM base address in the alias region */
            #define PERIPH_BB_BASE ((u32)0x42000000)
            #define SRAM_BB_BASE ((u32)0x22000000)

            /* Peripheral and SRAM base address in the bit-band region */
            #define SRAM_BASE ((u32)0x20000000)
            #define PERIPH_BASE ((u32)0x40000000)

            /* Flash refisters base address */
            #define FLASH_BASE ((u32)0x40022000)
            /* Flash Option Bytes base address */
            #define OB_BASE ((u32)0x1FFFF800)

            /* Peripheral memory map */
            #define APB1PERIPH_BASE PERIPH_BASE
            #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
            #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000)

            #define TIM2_BASE (APB1PERIPH_BASE + 0x0000)
            #define TIM3_BASE (APB1PERIPH_BASE + 0x0400)
            #define TIM4_BASE (APB1PERIPH_BASE + 0x0800)
            #define RTC_BASE (APB1PERIPH_BASE + 0x2800)
            #define WWDG_BASE (APB1PERIPH_BASE + 0x2C00)
            #define IWDG_BASE (APB1PERIPH_BASE + 0x3000)
            #define SPI2_BASE (APB1PERIPH_BASE + 0x3800)
            #define USART2_BASE (APB1PERIPH_BASE + 0x4400)
            #define USART3_BASE (APB1PERIPH_BASE + 0x4800)
            #define I2C1_BASE (APB1PERIPH_BASE + 0x5400)
            #define I2C2_BASE (APB1PERIPH_BASE + 0x5800)
            #define CAN_BASE (APB1PERIPH_BASE + 0x6400)
            #define BKP_BASE (APB1PERIPH_BASE + 0x6C00)
            #define PWR_BASE (APB1PERIPH_BASE + 0x7000)

            #define AFIO_BASE (APB2PERIPH_BASE + 0x0000)
            #define EXTI_BASE (APB2PERIPH_BASE + 0x0400)
            #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
            #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)
            #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000)
            #define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
            #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800)
            #define ADC1_BASE (APB2PERIPH_BASE + 0x2400)
            #define ADC2_BASE (APB2PERIPH_BASE + 0x2800)
            #define TIM1_BASE (APB2PERIPH_BASE + 0x2C00)
            #define SPI1_BASE (APB2PERIPH_BASE + 0x3000)
            #define USART1_BASE (APB2PERIPH_BASE + 0x3800)

            #define DMA_BASE (AHBPERIPH_BASE + 0x0000)
            #define DMA_Channel1_BASE (AHBPERIPH_BASE + 0x0008)
            #define DMA_Channel2_BASE (AHBPERIPH_BASE + 0x001C)
            #define DMA_Channel3_BASE (AHBPERIPH_BASE + 0x0030)
            #define DMA_Channel4_BASE (AHBPERIPH_BASE + 0x0044)
            #define DMA_Channel5_BASE (AHBPERIPH_BASE + 0x0058)
            #define DMA_Channel6_BASE (AHBPERIPH_BASE + 0x006C)
            #define DMA_Channel7_BASE (AHBPERIPH_BASE + 0x0080)
            #define RCC_BASE (AHBPERIPH_BASE + 0x1000)

            /* System Control Space memory map */
            #define SCS_BASE ((u32)0xE000E000)

            #define SysTick_BASE (SCS_BASE + 0x0010)
            #define NVIC_BASE (SCS_BASE + 0x0100)
            #define SCB_BASE (SCS_BASE + 0x0D00)


            /******************************************************************************/
            /* Peripheral declaration */
            /******************************************************************************/

            /*------------------------ Non Debug Mode ------------------------------------*/
            #ifndef DEBUG
            #ifdef _TIM2
            #define TIM2 ((TIM_TypeDef *) TIM2_BASE)
            #endif /*_TIM2 */

            #ifdef _TIM3
            #define TIM3 ((TIM_TypeDef *) TIM3_BASE)
            #endif /*_TIM3 */

            #ifdef _TIM4
            #define TIM4 ((TIM_TypeDef *) TIM4_BASE)
            #endif /*_TIM4 */

            #ifdef _RTC
            #define RTC ((RTC_TypeDef *) RTC_BASE)
            #endif /*_RTC */

            #ifdef _WWDG
            #define WWDG ((WWDG_TypeDef *) WWDG_BASE)
            #endif /*_WWDG */

            #ifdef _IWDG
            #define IWDG ((IWDG_TypeDef *) IWDG_BASE)
            #endif /*_IWDG */

            #ifdef _SPI2
            #define SPI2 ((SPI_TypeDef *) SPI2_BASE)
            #endif /*_SPI2 */

            #ifdef _USART2
            #define USART2 ((USART_TypeDef *) USART2_BASE)
            #endif /*_USART2 */

            #ifdef _USART3
            #define USART3 ((USART_TypeDef *) USART3_BASE)
            #endif /*_USART3 */

            #ifdef _I2C1
            #define I2C1 ((I2C_TypeDef *) I2C1_BASE)
            #endif /*_I2C1 */

            #ifdef _I2C2
            #define I2C2 ((I2C_TypeDef *) I2C2_BASE)
            #endif /*_I2C2 */

            #ifdef _CAN
            #define CAN ((CAN_TypeDef *) CAN_BASE)
            #endif /*_CAN */

            #ifdef _BKP
            #define BKP ((BKP_TypeDef *) BKP_BASE)
            #endif /*_BKP */

            #ifdef _PWR
            #define PWR ((PWR_TypeDef *) PWR_BASE)
            #endif /*_PWR */

            #ifdef _AFIO
            #define AFIO ((AFIO_TypeDef *) AFIO_BASE)
            #endif /*_AFIO */

            #ifdef _EXTI
            #define EXTI ((EXTI_TypeDef *) EXTI_BASE)
            #endif /*_EXTI */

            #ifdef _GPIOA
            #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
            #endif /*_GPIOA */

            #ifdef _GPIOB
            #define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
            #endif /*_GPIOB */

            #ifdef _GPIOC
            #define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
            #endif /*_GPIOC */

            #ifdef _GPIOD
            #define GPIOD ((GPIO_TypeDef *) GPIOD_BASE)
            #endif /*_GPIOD */

            #ifdef _GPIOE
            #define GPIOE ((GPIO_TypeDef *) GPIOE_BASE)
            #endif /*_GPIOE */

            #ifdef _ADC1
            #define ADC1 ((ADC_TypeDef *) ADC1_BASE)
            #endif /*_ADC1 */

            #ifdef _ADC2
            #define ADC2 ((ADC_TypeDef *) ADC2_BASE)
            #endif /*_ADC2 */

            #ifdef _TIM1
            #define TIM1 ((TIM1_TypeDef *) TIM1_BASE)
            #endif /*_TIM1 */

            #ifdef _SPI1
            #define SPI1 ((SPI_TypeDef *) SPI1_BASE)
            #endif /*_SPI1 */

            #ifdef _USART1
            #define USART1 ((USART_TypeDef *) USART1_BASE)
            #endif /*_USART1 */

            #ifdef _DMA
            #define DMA ((DMA_TypeDef *) DMA_BASE)
            #endif /*_DMA */

            #ifdef _DMA_Channel1
            #define DMA_Channel1 ((DMA_Channel_TypeDef *) DMA_Channel1_BASE)
            #endif /*_DMA_Channel1 */

            #ifdef _DMA_Channel2
            #define DMA_Channel2 ((DMA_Channel_TypeDef *) DMA_Channel2_BASE)
            #endif /*_DMA_Channel2 */

            #ifdef _DMA_Channel3
            #define DMA_Channel3 ((DMA_Channel_TypeDef *) DMA_Channel3_BASE)
            #endif /*_DMA_Channel3 */

            #ifdef _DMA_Channel4
            #define DMA_Channel4 ((DMA_Channel_TypeDef *) DMA_Channel4_BASE)
            #endif /*_DMA_Channel4 */

            #ifdef _DMA_Channel5
            #define DMA_Channel5 ((DMA_Channel_TypeDef *) DMA_Channel5_BASE)
            #endif /*_DMA_Channel5 */

            #ifdef _DMA_Channel6
            #define DMA_Channel6 ((DMA_Channel_TypeDef *) DMA_Channel6_BASE)
            #endif /*_DMA_Channel6 */

            #ifdef _DMA_Channel7
            #define DMA_Channel7 ((DMA_Channel_TypeDef *) DMA_Channel7_BASE)
            #endif /*_DMA_Channel7 */

            #ifdef _FLASH
            #define FLASH ((FLASH_TypeDef *) FLASH_BASE)
            #define OB ((OB_TypeDef *) OB_BASE)
            #endif /*_FLASH */

            #ifdef _RCC
            #define RCC ((RCC_TypeDef *) RCC_BASE)
            #endif /*_RCC */

            #ifdef _SysTick
            #define SysTick ((SysTick_TypeDef *) SysTick_BASE)
            #endif /*_SysTick */

            #ifdef _NVIC
            #define NVIC ((NVIC_TypeDef *) NVIC_BASE)
            #define SCB ((SCB_TypeDef *) SCB_BASE)
            #endif /*_NVIC */

            /*------------------------ Debug Mode ----------------------------------------*/
            #else /* DEBUG */
            #ifdef _TIM2
            EXT TIM_TypeDef *TIM2;
            #endif /*_TIM2 */

            #ifdef _TIM3
            EXT TIM_TypeDef *TIM3;
            #endif /*_TIM3 */

            #ifdef _TIM4
            EXT TIM_TypeDef *TIM4;
            #endif /*_TIM4 */

            #ifdef _RTC
            EXT RTC_TypeDef *RTC;
            #endif /*_RTC */

            #ifdef _WWDG
            EXT WWDG_TypeDef *WWDG;
            #endif /*_WWDG */

            #ifdef _IWDG
            EXT IWDG_TypeDef *IWDG;
            #endif /*_IWDG */

            #ifdef _SPI2
            EXT SPI_TypeDef *SPI2;
            #endif /*_SPI2 */

            #ifdef _USART2
            EXT USART_TypeDef *USART2;
            #endif /*_USART2 */

            #ifdef _USART3
            EXT USART_TypeDef *USART3;
            #endif /*_USART3 */

            #ifdef _I2C1
            EXT I2C_TypeDef *I2C1;
            #endif /*_I2C1 */

            #ifdef _I2C2
            EXT I2C_TypeDef *I2C2;
            #endif /*_I2C2 */

            #ifdef _CAN
            EXT CAN_TypeDef *CAN;
            #endif /*_CAN */

            #ifdef _BKP
            EXT BKP_TypeDef *BKP;
            #endif /*_BKP */

            #ifdef _PWR
            EXT PWR_TypeDef *PWR;
            #endif /*_PWR */

            #ifdef _AFIO
            EXT AFIO_TypeDef *AFIO;
            #endif /*_AFIO */

            #ifdef _EXTI
            EXT EXTI_TypeDef *EXTI;
            #endif /*_EXTI */

            #ifdef _GPIOA
            EXT GPIO_TypeDef *GPIOA;
            #endif /*_GPIOA */

            #ifdef _GPIOB
            EXT GPIO_TypeDef *GPIOB;
            #endif /*_GPIOB */

            #ifdef _GPIOC
            EXT GPIO_TypeDef *GPIOC;
            #endif /*_GPIOC */

            #ifdef _GPIOD
            EXT GPIO_TypeDef *GPIOD;
            #endif /*_GPIOD */

            #ifdef _GPIOE
            EXT GPIO_TypeDef *GPIOE;
            #endif /*_GPIOE */

            #ifdef _ADC1
            EXT ADC_TypeDef *ADC1;
            #endif /*_ADC1 */

            #ifdef _ADC2
            EXT ADC_TypeDef *ADC2;
            #endif /*_ADC2 */

            #ifdef _TIM1
            EXT TIM1_TypeDef *TIM1;
            #endif /*_TIM1 */

            #ifdef _SPI1
            EXT SPI_TypeDef *SPI1;
            #endif /*_SPI1 */

            #ifdef _USART1
            EXT USART_TypeDef *USART1;
            #endif /*_USART1 */

            #ifdef _DMA
            EXT DMA_TypeDef *DMA;
            #endif /*_DMA */

            #ifdef _DMA_Channel1
            EXT DMA_Channel_TypeDef *DMA_Channel1;
            #endif /*_DMA_Channel1 */

            #ifdef _DMA_Channel2
            EXT DMA_Channel_TypeDef *DMA_Channel2;
            #endif /*_DMA_Channel2 */

            #ifdef _DMA_Channel3
            EXT DMA_Channel_TypeDef *DMA_Channel3;
            #endif /*_DMA_Channel3 */

            #ifdef _DMA_Channel4
            EXT DMA_Channel_TypeDef *DMA_Channel4;
            #endif /*_DMA_Channel4 */

            #ifdef _DMA_Channel5
            EXT DMA_Channel_TypeDef *DMA_Channel5;
            #endif /*_DMA_Channel5 */

            #ifdef _DMA_Channel6
            EXT DMA_Channel_TypeDef *DMA_Channel6;
            #endif /*_DMA_Channel6 */

            #ifdef _DMA_Channel7
            EXT DMA_Channel_TypeDef *DMA_Channel7;
            #endif /*_DMA_Channel7 */

            #ifdef _FLASH
            EXT FLASH_TypeDef *FLASH;
            EXT OB_TypeDef *OB;
            #endif /*_FLASH */

            #ifdef _RCC
            EXT RCC_TypeDef *RCC;
            #endif /*_RCC */

            #ifdef _SysTick
            EXT SysTick_TypeDef *SysTick;
            #endif /*_SysTick */

            #ifdef _NVIC
            EXT NVIC_TypeDef *NVIC;
            EXT SCB_TypeDef *SCB;
            #endif /*_NVIC */

            #endif /* DEBUG */

            在stm32f10x_conf.h上右擊鼠標(biāo),open “stm32f10x_conf.h”,打開stm32f10x_conf.h文件。
            stm32f10x_conf.h文件是項(xiàng)目配置頭文件,該頭文件設(shè)置了所有用到的外設(shè),沒有用到的外設(shè)可以將其屏蔽掉,以節(jié)省編譯時(shí)間。
            提示:如果修改不了stm32f10x_conf.h文件時(shí),是因?yàn)樵撐募侵蛔x屬性,在屬性中修改即可。
            注意到main函數(shù)中有

            #ifdef DEBUG
            debug();
            #endif

            這段代碼,那么DEBUG標(biāo)示符是在哪定義的呢?是在stm32f10x_conf.h中定義的。
            還有,單片機(jī)的外部高速晶振HSE,不同的開發(fā)板可以有不同的值。那么HSE的值是在哪定義的呢?還是在stm32f10x_conf.h中。

            /* Includes ------------------------------------------------------------------*/
            #include "stm32f10x_type.h"

            /* Exported types ------------------------------------------------------------*/
            /* Exported constants --------------------------------------------------------*/
            /* Uncomment the line below to compile the library in DEBUG mode, this will expanse
            the "assert_param" macro in the firmware library code (see "Exported macro"
            section below) */
            /* #define DEBUG 1 */

            /* Comment the line below to disable the specific peripheral inclusion */
            /************************************* ADC ************************************/
            //#define _ADC
            //#define _ADC1
            //#define _ADC2

            /************************************* BKP ************************************/
            //#define _BKP

            /************************************* CAN ************************************/
            //#define _CAN

            /************************************* DMA ************************************/
            //#define _DMA
            //#define _DMA_Channel1
            //#define _DMA_Channel2
            //#define _DMA_Channel3
            //#define _DMA_Channel4
            //#define _DMA_Channel5
            //#define _DMA_Channel6
            //#define _DMA_Channel7

            /************************************* EXTI ***********************************/
            //#define _EXTI

            /************************************* FLASH and Option Bytes *****************/
            #define _FLASH
            /* Uncomment the line below to enable FLASH program/erase/protections functions,
            otherwise only FLASH configuration (latency, prefetch, half cycle) functions
            are enabled */
            /* #define _FLASH_PROG */

            /************************************* GPIO ***********************************/
            #define _GPIO
            //#define _GPIOA
            //#define _GPIOB
            //#define _GPIOC
            //#define _GPIOD
            //#define _GPIOE
            #define _AFIO

            /************************************* I2C ************************************/
            //#define _I2C
            //#define _I2C1
            //#define _I2C2

            /************************************* IWDG ***********************************/
            //#define _IWDG

            /************************************* NVIC ***********************************/
            #define _NVIC

            /************************************* PWR ************************************/
            //#define _PWR

            /************************************* RCC ************************************/
            #define _RCC

            /************************************* RTC ************************************/
            //#define _RTC

            /************************************* SPI ************************************/
            //#define _SPI
            //#define _SPI1
            //#define _SPI2

            /************************************* SysTick ********************************/
            //#define _SysTick

            /************************************* TIM1 ***********************************/
            //#define _TIM1

            /************************************* TIM ************************************/
            //#define _TIM
            //#define _TIM2
            //#define _TIM3
            //#define _TIM4

            /************************************* USART **********************************/
            //#define _USART
            //#define _USART1
            //#define _USART2
            //#define _USART3

            /************************************* WWDG ***********************************/
            //#define _WWDG

            /* In the following line adjust the value of External High Speed oscillator (HSE)
            used in your application */
            #define HSE_Value ((u32)8000000) /* Value of the External oscillator in Hz*/

            /* Exported macro ------------------------------------------------------------*/
            #ifdef DEBUG
            /*******************************************************************************
            * Macro Name : assert_param
            * Description : The assert_param macro is used for functions parameters check.
            * It is used only if the library is compiled in DEBUG mode.
            * Input : - expr: If expr is false, it calls assert_failed function
            * which reports the name of the source file and the source
            * line number of the call that failed.
            * If expr is true, it returns no value.
            * Return : None
            *******************************************************************************/
            #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
            /* Exported functions ------------------------------------------------------- */
            void assert_failed(u8* file, u32 line);
            #else
            #define assert_param(expr) ((void)0)
            #endif /* DEBUG */

            在stm32f10x_type.h上右擊鼠標(biāo),open “stm32f10x_type.h”,打開stm32f10x_type.h文件。
            stm32f10x_type.h文件包含所有其他文件所使用的數(shù)據(jù)和枚舉類型。

            /* Includes ------------------------------------------------------------------*/
            /* Exported types ------------------------------------------------------------*/
            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;

            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 */

            typedef enum {FALSE = 0, TRUE = !FALSE} bool;
            typedef bool BOOL;

            typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;

            typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
            #define IS_FUNCTIONAL_STATE(STATE) ((STATE == DISABLE) || (STATE == ENABLE))

            typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;

            #ifndef NULL
            #define NULL ((void *)0)
            #endif

            #define U8_MAX ((u8)255)
            #define S8_MAX ((s8)127)
            #define S8_MIN ((s8)-128)
            #define U16_MAX ((u16)65535u)
            #define S16_MAX ((s16)32767)
            #define S16_MIN ((s16)-32768)
            #define U32_MAX ((u32)4294967295uL)
            #define S32_MAX ((s32)2147483647)
            #define S32_MIN ((s32)2147483648uL)

            /* Exported constants --------------------------------------------------------*/
            /* Exported macro ------------------------------------------------------------*/
            /* Exported functions ------------------------------------------------------- */

            #endif /* __STM32F10x_TYPE_H */

            在stm32f10x_map.h文件中,在stm32f10x_macro.h上右擊鼠標(biāo),open “stm32f10x_macro.h”,打開stm32f10x_macro.h文件。

            stm32f10x_macro.h是cortex3_macro.s對(duì)應(yīng)的頭文件(即操作Cortex_M3核所需的頭文件)

            /* Define to prevent recursive inclusion -------------------------------------*/
            #ifndef __CORTEXM3_MACRO_H
            #define __CORTEXM3_MACRO_H

            /* Includes ------------------------------------------------------------------*/
            #include "stm32f10x_type.h"

            /* Exported types ------------------------------------------------------------*/
            /* Exported constants --------------------------------------------------------*/
            /* Exported macro ------------------------------------------------------------*/
            /* Exported functions ------------------------------------------------------- */
            void __WFI(void);
            void __WFE(void);
            void __SEV(void);
            void __ISB(void);
            void __DSB(void);
            void __DMB(void);
            void __SVC(void);
            u32 __MRS_CONTROL(void);
            void __MSR_CONTROL(u32 Control);
            u32 __MRS_PSP(void);
            void __MSR_PSP(u32 TopOfProcessStack);
            u32 __MRS_MSP(void);
            void __MSR_MSP(u32 TopOfMainStack);
            void __SETPRIMASK(void);
            void __RESETPRIMASK(void);
            void __SETFAULTMASK(void);
            void __RESETFAULTMASK(void);
            void __BASEPRICONFIG(u32 NewPriority);
            u32 __GetBASEPRI(void);
            u16 __REV_HalfWord(u16 Data);
            u32 __REV_Word(u32 Data);

            #endif /* __CORTEXM3_MACRO_H */




            關(guān)鍵詞: STM32F10x頭文

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉