STM32F4官方评估板 笔记.docx

上传人:b****1 文档编号:12467233 上传时间:2023-04-19 格式:DOCX 页数:26 大小:22.08KB
下载 相关 举报
STM32F4官方评估板 笔记.docx_第1页
第1页 / 共26页
STM32F4官方评估板 笔记.docx_第2页
第2页 / 共26页
STM32F4官方评估板 笔记.docx_第3页
第3页 / 共26页
STM32F4官方评估板 笔记.docx_第4页
第4页 / 共26页
STM32F4官方评估板 笔记.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

STM32F4官方评估板 笔记.docx

《STM32F4官方评估板 笔记.docx》由会员分享,可在线阅读,更多相关《STM32F4官方评估板 笔记.docx(26页珍藏版)》请在冰豆网上搜索。

STM32F4官方评估板 笔记.docx

STM32F4官方评估板笔记

STM32F407VGT6ST官方评估板无责任笔记①②③④⑤⑥⑦⑧⑨⑩

WritenBy钟礼浩

华南农业大学工程学院QQ371724290

1.系统初始化

①voidSystemInit(void);

子函数:

staticvoidSetSysClock(void)

关键值:

/*PLL_VCO=(HSE_VALUEorHSI_VALUE/PLL_M)*PLL_N*/

#definePLL_M8//直接修改为晶振值即得到168MHz系统时钟

#definePLL_N336

/*SYSCLK=PLL_VCO/PLL_P*/

#definePLL_P2

/*USBOTGFS,SDIOandRNGClock=PLL_VCO/PLLQ*/

#definePLL_Q7

*SupportedSTM32F4xxdevicerevision|RevA

*SystemClocksource|PLL(HSE)

*SYSCLK(Hz)|168000000

*HCLK(Hz)|168000000

*AHBPrescaler|1

*APB1Prescaler|4

*APB2Prescaler|2

*HSEFrequency(Hz)|25000000

*PLL_M|25

*PLL_N|336

*PLL_P|2

*PLL_Q|7

*PLLI2S_N|NA

*PLLI2S_R|NA

*I2Sinputclock|NA

*VDD(V)|3.3

*Mainregulatoroutputvoltage|Scale1mode

*FlashLatency(WS)|5

*PrefetchBuffer|OFF

*Instructioncache|ON

*Datacache|ON

*Require48MHzforUSBOTGFS,|Enabled

*SDIOandRNGclock|

2.通用io结构体设置

①typedefstruct

{

uint32_tGPIO_Pin;//针脚

Thisparametercanbeanyvalueof@refGPIO_pins_define*/

GPIOMode_TypeDefGPIO_Mode;//模式

Thisparametercanbeavalueof@refGPIOMode_TypeDef*/

GPIOSpeed_TypeDefGPIO_Speed;//速度

Thisparametercanbeavalueof@refGPIOSpeed_TypeDef*/

GPIOOType_TypeDefGPIO_OType;//输出物理模式推挽or开漏

Thisparametercanbeavalueof@refGPIOOType_TypeDef*/

GPIOPuPd_TypeDefGPIO_PuPd;//上下拉电阻设置

Thisparametercanbeavalueof@refGPIOPuPd_TypeDef*/

}GPIO_InitTypeDef;

Pin选择:

#defineGPIO_Pin_0((uint16_t)0x0001)/*Pin0selected*/

#defineGPIO_Pin_1((uint16_t)0x0002)/*Pin1selected*/

#defineGPIO_Pin_2((uint16_t)0x0004)/*Pin2selected*/

#defineGPIO_Pin_3((uint16_t)0x0008)/*Pin3selected*/

#defineGPIO_Pin_4((uint16_t)0x0010)/*Pin4selected*/

#defineGPIO_Pin_5((uint16_t)0x0020)/*Pin5selected*/

#defineGPIO_Pin_6((uint16_t)0x0040)/*Pin6selected*/

#defineGPIO_Pin_7((uint16_t)0x0080)/*Pin7selected*/

#defineGPIO_Pin_8((uint16_t)0x0100)/*Pin8selected*/

#defineGPIO_Pin_9((uint16_t)0x0200)/*Pin9selected*/

#defineGPIO_Pin_10((uint16_t)0x0400)/*Pin10selected*/

#defineGPIO_Pin_11((uint16_t)0x0800)/*Pin11selected*/

#defineGPIO_Pin_12((uint16_t)0x1000)/*Pin12selected*/

#defineGPIO_Pin_13((uint16_t)0x2000)/*Pin13selected*/

#defineGPIO_Pin_14((uint16_t)0x4000)/*Pin14selected*/

#defineGPIO_Pin_15((uint16_t)0x8000)/*Pin15selected*/

#defineGPIO_Pin_All((uint16_t)0xFFFF)/*Allpinsselected*/

Mode选择:

typedefenum

{

GPIO_Mode_IN=0x00,/*!

GPIO_Mode_OUT=0x01,/*!

GPIO_Mode_AF=0x02,/*!

GPIO_Mode_AN=0x03/*!

}GPIOMode_TypeDef;

Speed速度设置:

typedefenum

{

GPIO_Speed_2MHz=0x00,/*!

GPIO_Speed_25MHz=0x01,/*!

GPIO_Speed_50MHz=0x02,/*!

GPIO_Speed_100MHz=0x03/*!

}GPIOSpeed_TypeDef;

OType输出物理性质设置:

typedefenum

{

GPIO_OType_PP=0x00,

GPIO_OType_OD=0x01

}GPIOOType_TypeDef;

PuPd上下拉电阻设置:

typedefenum

{

GPIO_PuPd_NOPULL=0x00,

GPIO_PuPd_UP=0x01,

GPIO_PuPd_DOWN=0x02

}GPIOPuPd_TypeDef;

②开相关寄存器时钟:

(注意开syscfg在APB2)

voidRCC_AHB1PeriphClockCmd(uint32_tRCC_AHB1Periph,FunctionalStateNewState)

voidRCC_AHB2PeriphClockCmd(uint32_tRCC_AHB2Periph,FunctionalStateNewState)

voidRCC_AHB3PeriphClockCmd(uint32_tRCC_AHB3Periph,FunctionalStateNewState)

voidRCC_APB1PeriphClockCmd(uint32_tRCC_APB1Periph,FunctionalStateNewState)

voidRCC_APB2PeriphClockCmd(uint32_tRCC_APB2Periph,FunctionalStateNewState)

AHB1首位形参:

RCC_AHB1Periph_GPIOA:

GPIOAclock

RCC_AHB1Periph_GPIOB:

GPIOBclock

RCC_AHB1Periph_GPIOC:

GPIOCclock

RCC_AHB1Periph_GPIOD:

GPIODclock

RCC_AHB1Periph_GPIOE:

GPIOEclock

RCC_AHB1Periph_GPIOF:

GPIOFclock

RCC_AHB1Periph_GPIOG:

GPIOGclock

RCC_AHB1Periph_GPIOG:

GPIOGclock

RCC_AHB1Periph_GPIOI:

GPIOIclock

RCC_AHB1Periph_CRC:

CRCclock

RCC_AHB1Periph_BKPSRAM:

BKPSRAMinterfaceclock

RCC_AHB1Periph_CCMDATARAMEN:

CCMdataRAMinterfaceclock

RCC_AHB1Periph_DMA1:

DMA1clock

RCC_AHB1Periph_DMA2:

DMA2clock

RCC_AHB1Periph_ETH_MAC:

EthernetMACclock

RCC_AHB1Periph_ETH_MAC_Tx:

EthernetTransmissionclock

RCC_AHB1Periph_ETH_MAC_Rx:

EthernetReceptionclock

RCC_AHB1Periph_ETH_MAC_PTP:

EthernetPTPclock

RCC_AHB1Periph_OTG_HS:

USBOTGHSclock

RCC_AHB1Periph_OTG_HS_ULPI:

USBOTGHSULPIclock

AHB2首位形参:

RCC_AHB2Periph_DCMI:

DCMIclock

RCC_AHB2Periph_CRYP:

CRYPclock

RCC_AHB2Periph_HASH:

HASHclock

RCC_AHB2Periph_RNG:

RNGclock

RCC_AHB2Periph_OTG_FS:

USBOTGFSclock

AHB3首位形参:

RCC_AHBPeriph:

specifiestheAHB3peripheraltogatesitsclock.

Thisparametermustbe:

RCC_AHB3Periph_FSMC

APB1首位形参:

RCC_APB1Periph_TIM2:

TIM2clock

RCC_APB1Periph_TIM3:

TIM3clock

RCC_APB1Periph_TIM4:

TIM4clock

RCC_APB1Periph_TIM5:

TIM5clock

RCC_APB1Periph_TIM6:

TIM6clock

RCC_APB1Periph_TIM7:

TIM7clock

RCC_APB1Periph_TIM12:

TIM12clock

RCC_APB1Periph_TIM13:

TIM13clock

RCC_APB1Periph_TIM14:

TIM14clock

RCC_APB1Periph_WWDG:

WWDGclock

RCC_APB1Periph_SPI2:

SPI2clock

RCC_APB1Periph_SPI3:

SPI3clock

RCC_APB1Periph_USART2:

USART2clock

RCC_APB1Periph_USART3:

USART3clock

RCC_APB1Periph_UART4:

UART4clock

RCC_APB1Periph_UART5:

UART5clock

RCC_APB1Periph_I2C1:

I2C1clock

RCC_APB1Periph_I2C2:

I2C2clock

RCC_APB1Periph_I2C3:

I2C3clock

RCC_APB1Periph_CAN1:

CAN1clock

RCC_APB1Periph_CAN2:

CAN2clock

RCC_APB1Periph_PWR:

PWRclock

RCC_APB1Periph_DAC:

DACclock

APB2首位形参:

RCC_APB2Periph_TIM1:

TIM1clock

RCC_APB2Periph_TIM8:

TIM8clock

RCC_APB2Periph_USART1:

USART1clock

RCC_APB2Periph_USART6:

USART6clock

RCC_APB2Periph_ADC1:

ADC1clock

RCC_APB2Periph_ADC2:

ADC2clock

RCC_APB2Periph_ADC3:

ADC3clock

RCC_APB2Periph_SDIO:

SDIOclock

RCC_APB2Periph_SPI1:

SPI1clock

RCC_APB2Periph_SYSCFG:

SYSCFGclock

RCC_APB2Periph_TIM9:

TIM9clock

RCC_APB2Periph_TIM10:

TIM10clock

RCC_APB2Periph_TIM11:

TIM11clock

③GPIO_Init(GPIOx,&GPIO_InitStructure);//与①共同协作,port与结构体为形参

3.开外部中断

①GPIO_InitTypeDef;

EXTI_InitTypeDef;

NVIC_InitTypeDef;//定义结构体

②开时钟(前述)位时钟,syscfg

③voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)//GPIO设置

④voidSYSCFG_EXTILineConfig(uint8_tEXTI_PortSourceGPIOx,uint8_tEXTI_PinSourcex)//中断注册(port和位)

⑤typedefstruct

{

uint32_tEXTI_Line;/*!

Thisparametercanbeanycombinationvalueof@refEXTI_Lines*/

EXTIMode_TypeDefEXTI_Mode;/*!

Thisparametercanbeavalueof@refEXTIMode_TypeDef*/

EXTITrigger_TypeDefEXTI_Trigger;/*!

Thisparametercanbeavalueof@refEXTITrigger_TypeDef*/

FunctionalStateEXTI_LineCmd;/*!

ThisparametercanbeseteithertoENABLEorDISABLE*/

}EXTI_InitTypeDef;

EXTI_Line:

#defineEXTI_Line0

#defineEXTI_Line1

#defineEXTI_Line2

#defineEXTI_Line3

#defineEXTI_Line4

#defineEXTI_Line5

#defineEXTI_Line6

#defineEXTI_Line7

#defineEXTI_Line8

#defineEXTI_Line9

#defineEXTI_Line10

#defineEXTI_Line11

#defineEXTI_Line12

#defineEXTI_Line13

#defineEXTI_Line14

#defineEXTI_Line15

#defineEXTI_Line16PVDOutput

#defineEXTI_Line17RTCAlarmevent

#defineEXTI_Line18USBOTGFSWakeupfromsuspendevent

#defineEXTI_Line19EthernetWakeupevent

#defineEXTI_Line20USBOTGHS(configuredinFS)Wakeupevent

#defineEXTI_Line21RTCTamperandTimeStampevents

#defineEXTI_Line22RTCWakeupevent

EXTI_Mode:

typedefenum

{

EXTI_Mode_Interrupt=0x00,√

EXTI_Mode_Event=0x04

}EXTIMode_TypeDef;

EXTI_Trigger:

typedefenum

{

EXTI_Trigger_Rising=0x08,√

EXTI_Trigger_Falling=0x0C,

EXTI_Trigger_Rising_Falling=0x10

}EXTITrigger_TypeDef;

EXTI_LineCmd:

ENABLE

DISABLE

⑥voidEXTI_Init(EXTI_InitTypeDef*EXTI_InitStruct)//初始化

⑦typedefstruct

{

uint8_tNVIC_IRQChannel;

uint8_tNVIC_IRQChannelPreemptionPriority;//0x00-0x0f取值

uint8_tNVIC_IRQChannelSubPriority;//0x00-0x0f取值

FunctionalStateNVIC_IRQChannelCmd;//ENABLE,DISABLE

}NVIC_InitTypeDef;

NVIC_IRQChannel:

typedefenumIRQn

{

/******Cortex-M4ProcessorExceptionsNumbers****************************************************************/

NonMaskableInt_IRQn=-14,/*!

<2NonMaskableInterrupt*/

MemoryManagement_IRQn=-12,/*!

<4Cortex-M4MemoryManagementInterrupt*/

BusFault_IRQn=-11,/*!

<5Cortex-M4BusFaultInterrupt*/

UsageFault_IRQn=-10,/*!

<6Cortex-M4UsageFaultInterrupt*/

SVCall_IRQn=-5,/*!

<11Cortex-M4SVCallInterrupt*/

DebugMonitor_IRQn=-4,/*!

<12Cortex-M4DebugMonitorInterrupt*/

PendSV_IRQn=-2,/*!

<14Cortex-M4PendSVInterrupt*/

SysTick_IRQn=-1,/*!

<15Cortex-M4SystemTickInterrupt*/

/******STM32specificInterruptNumbers**********************************************************************/

WWDG_IRQn=0,/*!

PVD_IRQn=1,/*!

TAMP_STAMP_IRQn=2,/*!

RTC_WKUP_IRQn=3,/*!

FLASH_IRQn=4,/*!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1