?? main.c
字號(hào):
//********************************************Caution********************************************//
//a.當(dāng)要修改芯片型號(hào)時(shí),注意修改啟動(dòng)文件和C/C++選項(xiàng)頁(yè)中的Debug選項(xiàng),詳見(jiàn)ReadMe文件
//b.程序默認(rèn)使用SWD調(diào)試模式
//***********************************************************************************************//
#include "stm32f10x.h"
#include "stm32f10x_it.h"
void RCC_Configuration(void);
void NVIC_Configuration(void);
void GPIO_Configuration(void);
int main()
{
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
while(1);
}
//時(shí)鐘配置
void RCC_Configuration(void)
{
RCC_HSEConfig(RCC_HSE_ON); //外部高速晶振
if(RCC_WaitForHSEStartUp()==SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //FLASH預(yù)讀功能
FLASH_SetLatency(FLASH_Latency_2);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); //PLL時(shí)鐘72MHz
RCC_PLLCmd(ENABLE);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //系統(tǒng)時(shí)鐘
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB時(shí)鐘,由系統(tǒng)時(shí)鐘分頻 72MHz
RCC_PCLK1Config(RCC_HCLK_Div2); //APB1時(shí)鐘,由AHB時(shí)鐘分頻 36MHz
RCC_PCLK2Config(RCC_HCLK_Div1); //APB2時(shí)鐘,由AHB時(shí)鐘分頻 72MHz
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //等待PLL設(shè)置成功
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //選擇PLLCLK為SYSCLK時(shí)鐘源
while(RCC_GetSYSCLKSource() != 0x08); //等待PLLCLK真的設(shè)置為SYSCLK時(shí)鐘源
RCC_AHBPeriphClockCmd( RCC_AHBPeriph_DMA1
//|RCC_AHBPeriph_DMA2
|RCC_AHBPeriph_SRAM
//|RCC_AHBPeriph_FLITF //閃存存儲(chǔ)器接口
//|RCC_AHBPeriph_CRC
,ENABLE);
RCC_APB1PeriphClockCmd( RCC_APB1Periph_ALL
//|RCC_APB1Periph_TIM2
//|RCC_APB1Periph_TIM3
//|RCC_APB1Periph_TIM4
//|RCC_APB1Periph_TIM5
//|RCC_APB1Periph_TIM6
//|RCC_APB1Periph_TIM7
//|RCC_APB1Periph_TIM12
//|RCC_APB1Periph_TIM13
//|RCC_APB1Periph_TIM14
//|RCC_APB1Periph_WWDG
//|RCC_APB1Periph_SPI2
//|RCC_APB1Periph_SPI3
//|RCC_APB1Periph_USART2
//|RCC_APB1Periph_USART3
//|RCC_APB1Periph_UART4
//|RCC_APB1Periph_UART5
//|RCC_APB1Periph_I2C1
//|RCC_APB1Periph_I2C2
//|RCC_APB1Periph_USB
//|RCC_APB1Periph_CAN1
//|RCC_APB1Periph_CAN2
//|RCC_APB1Periph_BKP
//|RCC_APB1Periph_PWR
//|RCC_APB1Periph_DAC
//|RCC_APB1Periph_CEC
,DISABLE);
RCC_APB2PeriphClockCmd( //RCC_APB2Periph_ALL
RCC_APB2Periph_AFIO //引腳重映射
//|RCC_APB2Periph_GPIOA
//|RCC_APB2Periph_GPIOB
//|RCC_APB2Periph_GPIOC
//|RCC_APB2Periph_GPIOD
//|RCC_APB2Periph_GPIOE
//|RCC_APB2Periph_GPIOF
//|RCC_APB2Periph_GPIOG
//|RCC_APB2Periph_ADC1
//|RCC_APB2Periph_ADC2
//|RCC_APB2Periph_TIM1
//|RCC_APB2Periph_SPI1
//|RCC_APB2Periph_TIM8
//|RCC_APB2Periph_USART1
//|RCC_APB2Periph_ADC3
//|RCC_APB2Periph_TIM15
//|RCC_APB2Periph_TIM16
//|RCC_APB2Periph_TIM17
//|RCC_APB2Periph_TIM9
//|RCC_APB2Periph_TIM10
//|RCC_APB2Periph_TIM11
,ENABLE);
//RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); //USB時(shí)鐘
//RCC_ADCCLKConfig(RCC_PCLK2_Div4); //ADC時(shí)鐘
//RCC_LSEConfig(RCC_LSE_ON); //外部低速時(shí)鐘
//RCC_LSICmd(DISABLE); //內(nèi)部低速時(shí)鐘
//RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //實(shí)時(shí)時(shí)鐘
//RCC_RTCCLKCmd(ENABLE);
//RCC_MCOConfig(RCC_MCO_PLLCLK_NoClock); //MCO引腳輸出時(shí)鐘
}
}
//中斷配置
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
//優(yōu)先級(jí)分配
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
/* 搶占優(yōu)先級(jí) 從優(yōu)先級(jí)
NVIC_PriorityGroup_0: 0 8
NVIC_PriorityGroup_1: 1 7
NVIC_PriorityGroup_2: 2 6
NVIC_PriorityGroup_3: 3 5
NVIC_PriorityGroup_4: 4 4
*/
}
//IO引腳設(shè)置
void GPIO_Configuration(void)
{
//GPIO_InitTypeDef GPIO_InitStructure;
//啟動(dòng)SWD調(diào)試模式
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //調(diào)試口引腳重映射
//GPIO_Remap_SPI1 //SPI1_NSS -> PA15、SPI1_SCK -> PB3、SPI1_MISO -> PB4、SPI1_MOSI -> PC12
//GPIO_Remap_I2C1 //I2C1_SCL -> PB8、I2C1_SDA -> PB9
//GPIO_Remap_USART1 //USART1_TX -> PB6、USART_RX -> PB7
//GPIO_Remap_USART2 //USART2_TX -> PD5、USART2_RX -> PD6、USART2_CK -> PD7、USART2_CTS -> PD3、USART2_RTS -> PD4
//GPIO_PartialRemap_USART3 //USART3_TX -> PC10、USART3_RX -> PC11、USART3_CK -> PC12、USART3_CTS -> PB13、USART3_RTS -> PB14
//GPIO_FullRemap_USART3 //USART3_TX -> PD8、USART3_RX -> PD9、USART3_CK -> PD10、USART3_CTS -> PD11、USART3_RTS -> PD12
//GPIO_PartialRemap_TIM1 //TIM1_ETR -> PA12、TIM1_CH1 -> PA8、TIM1_CH2 -> PA9、TIM1_CH3 -> PA10、TIM1_CH4 -> PA11、TIM1_BKIN -> PA6、TIM1_CH1N -> PA7、TIM1_CH2N -> PB0、TIM1_CH3N -> PB1
//GPIO_FullRemap_TIM1 //TIM1_ETR -> PE7、TIM1_CH1 -> PE9、TIM1_CH2 -> PE11、TIM1_CH3 -> PE13、TIM1_CH4 -> PE14、TIM1_BKIN -> PE15、TIM1_CH1N -> PE8、TIM1_CH2N -> PE10、TIM1_CH3N -> PE12
//GPIO_PartialRemap1_TIM2 //TIM2_CH1_ETR -> PA15、TIM2_CH2 -> PB3、TIM2_CH3 -> PA2、TIM2_CH4 -> PA3
//GPIO_PartialRemap2_TIM2 //TIM2_CH1_ETR -> PA0、TIM2_CH2 -> PA1、TIM2_CH3 -> PB10、TIM2_CH4 -> PB11
//GPIO_FullRemap_TIM2 //TIM2_CH1_ETR -> PA15、TIM2_CH2 -> PB3、TIM2_CH3 -> PB10、TIM2_CH4 -> PB11
//GPIO_PartialRemap_TIM3 //TIM3_CH1 -> PB4、TIM3_CH2 -> PB5、TIM3_CH3 -> PB0、TIM3_CH4 -> PB1
//GPIO_FullRemap_TIM3 //TIM3_CH1 -> PC6、TIM3_CH2 -> PC7、TIM3_CH3 -> PC8、TIM3_CH4 -> PC9
//GPIO_Remap_TIM4 //TIM4_CH1 -> PD12、TIM4_CH2 -> PD13、TIM4_CH3 -> PD14、TIM4_CH4 -> PD15
//GPIO_Remap1_CAN1 //CAN1_RX/AN_RX -> PB8、CAN1_TX/AN_TX -> PB9
//GPIO_Remap2_CAN1 //CAN1_RX/AN_RX -> PD0、CAN1_TX/AN_TX -> PD1
//GPIO_Remap_PD01 //OSC_IN、OSC_OUT映射為PD0、PD1
//GPIO_Remap_TIM5CH4_LSI //TIM5_CH4連接至LSI內(nèi)部時(shí)鐘,用于校準(zhǔn)(默認(rèn)TIM5_CH4 -> TIM5_CH4)
//GPIO_Remap_ADC1_ETRGINJ //ADC1外部觸發(fā)注入轉(zhuǎn)換與TIM8_CH4相連(默認(rèn)EXTI15) ※大容量產(chǎn)品 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//GPIO_Remap_ADC1_ETRGREG //ADC1外部觸發(fā)規(guī)則轉(zhuǎn)換與TIM8_TRGO相連(默認(rèn)EXTI11) ※大容量產(chǎn)品
//GPIO_Remap_ADC2_ETRGINJ //ADC1外部觸發(fā)注入轉(zhuǎn)換與TIM8_CH4相連(默認(rèn)EXTI15) ※大容量產(chǎn)品
//GPIO_Remap_ADC2_ETRGREG //ADC1外部觸發(fā)規(guī)則轉(zhuǎn)換與TIM8_TRGO相連(默認(rèn)EXTI11) ※大容量產(chǎn)品
//GPIO_Remap_ETH
//GPIO_Remap_CAN2
//GPIO_Remap_SWJ_NoJTRST //SWJ除JTRST外完全使能 (PA13、PA14、PA15、PB3 不可用 PB4可用)
//GPIO_Remap_SWJ_JTAGDisable //JTAG失能+SW-DP模式使能 (PA13、PA14 不可用 PA15、PB3、PB4可用)
//GPIO_Remap_SWJ_Disable //SWJ完全失能 (PA13、PA14、PA15、PB3、PB4可用)
//GPIO_Remap_SPI3
//GPIO_Remap_TIM2ITR1_PTP_SOF
/*
//普通I/O配置
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//GPIO_Speed_10MHz
//GPIO_Speed_2MHz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//GPIO_Mode_AIN //模擬輸入
//GPIO_Mode_IN_FLOATING //浮空輸入
//GPIO_Mode_IPD //下拉輸入
//GPIO_Mode_IPU //上拉輸入
//GPIO_Mode_Out_OD //開(kāi)漏輸出
//GPIO_Mode_Out_PP //推挽輸出
//GPIO_Mode_AF_OD //復(fù)用開(kāi)漏輸出
//GPIO_Mode_AF_PP //復(fù)用推挽輸出
GPIO_Init(GPIOA,&GPIO_InitStructure);
//GPIO_ResetBits(GPIOA,GPIO_Pin_10);
*/
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -