(1)GPIO_InitStructure
1.GPIO_Pin
GPIO_Pin_x //x = 0~15
2.GPIO_Mode
GPIO_Mode_IN //输入模式
GPIO_Mode_OUT //输出模式
GPIO_Mode_AF //复用模式
GPIO_Mode_AN //模拟模式
3.GPIO_Speed
GPIO_Low_Speed GPIO_Speed_2MHz
GPIO_Medium_Speed GPIO_Speed_25MHz
GPIO_Fast_Speed GPIO_Speed_50MHz
GPIO_High_Speed GPIO_Speed_100MHz
① USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。
② I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。
③ SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。
4.GPIO_OType
GPIO_OType_PP //推挽模式
GPIO_OType_OD //开漏模式
STM32F1中貌似没有这个,直接在Mode后面加_PP,_OD
5.GPIO_PuPd
GPIO_PuPd_NOPULL //浮空
GPIO_PuPd_UP //上拉
GPIO_PuPd_DOWN //下拉
(2)USART_InitStructure
1.USART_BaudRate
串口通信中常用的波特率为 4800、9600、115200 等
2.USART_WordLength
USART_WordLength_8b //无奇偶校验位 USART_WordLength_9b //有奇偶校验位
3.USART_StopBits
USART_StopBits_1 //一个停止位
4.USART_Parity
USART_Parity_No //无奇偶校验
5.USART_Mode
USART_Mode_Rx //收
USART_Mode_Tx //发
USART_Mode_Rx | USART_Mode_Tx //收发
6.USART_HardwareFlowControl
硬件流控制
USART_HardwareFlowControl_None //无硬件数据流控制
(3)NVIC_InitStructure
1.NVIC_IRQChannel
抢占通道选择
CAN1_TX_IRQn
CAN1_RX0_IRQn
CAN1_RX1_IRQn
CAN1_SCE_IRQn
EXTI9_5_IRQn
TIM1_BRK_TIM9_IRQn
TIM1_UP_TIM10_IRQn
TIM1_TRG_COM_TIM11_IRQn
TIM1_CC_IRQn
TIM2_IRQn
TIM3_IRQn
TIM4_IRQn
I2C1_EV_IRQn
I2C1_ER_IRQn
I2C2_EV_IRQn
I2C2_ER_IRQn
SPI1_IRQn
SPI2_IRQn
USART1_IRQn
USART2_IRQn
USART3_IRQn
EXTI15_10_IRQn
RTC_Alarm_IRQn
OTG_FS_WKUP_IRQn
TIM8_BRK_TIM12_IRQn
TIM8_UP_TIM13_IRQn
TIM8_TRG_COM_TIM14_IRQn
TIM8_CC_IRQn
DMA1_Stream7_IRQn
FSMC_IRQn
SDIO_IRQn
TIM5_IRQn
SPI3_IRQn
UART4_IRQn
UART5_IRQn
TIM6_DAC_IRQn
TIM7_IRQn
DMA2_Stream0_IRQn
DMA2_Stream1_IRQn
DMA2_Stream2_IRQn
DMA2_Stream3_IRQn
DMA2_Stream4_IRQn
ETH_IRQn
ETH_WKUP_IRQn
CAN2_TX_IRQn
CAN2_RX0_IRQn
CAN2_RX1_IRQn
CAN2_SCE_IRQn
OTG_FS_IRQn
DMA2_Stream5_IRQn
DMA2_Stream6_IRQn
DMA2_Stream7_IRQn
USART6_IRQn
I2C3_EV_IRQn
I2C3_ER_IRQn
OTG_HS_EP1_OUT_IRQn
OTG_HS_EP1_IN_IRQn
OTG_HS_WKUP_IRQn
OTG_HS_IRQn
DCMI_IRQn
CRYP_IRQn
HASH_RNG_IRQn
FPU_IRQn
2.NVIC_IRQChannelPreemptionPriority
抢占优先级
3.NVIC_IRQChannelSubPriority
子优先级
在主函数中声明优先级分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x); //x = 0~4
4.NVIC_IRQChannelCmd
ENABLE //使能
(4)EXTI_InitStructure
1.EXTI_Line
EXTI_Linex //x对应exti线
2.EXTI_Mode
EXTI_Mode_Interrupt //中断模式
EXTI_Mode_Event //事件模式
3.EXTI_Trigger
EXTI_Trigger_Rising //上升沿触发
EXTI_Trigger_Falling //下降沿触发
EXTI_Trigger_Rising_Falling //下降和上升沿触发
4.EXTI_LineCmd
ENABLE //使能
(5)TIM_TimeBaseStructure
1.TIM_Prescaler
fractional-1 //预分频值为fractional
2.TIM_CounterMode
TIM_CounterMode_Up //向上计数
TIM_CounterMode_Down //向下计数
或中央对齐计数
3.TIM_Period
auto_data-1 //自动重装值
4.TIM_ClockDivision
TIM_CKD_DIV1 //时钟分割定位1,也就是不分频
(6)TIM_OCInitStructure
1.TIM_OCMode
选择定时器模式
TIM_OCMode_Timing //冻结模式
TIM_OCMode_Active //相等时置有效电平
TIM_OCMode_Inactive //相等时置无效电平
TIM_OCMode_Toggle //相等时电平翻转
TIM_OCMode_PWM1
TIM_OCMode_PWM2
2.TIM_OCPolarity
输出比较极性
TIM_OCPolarity_Low //有效高电平
TIM_OCPolarity_High //有效高电平
3.TIM_OutputState
ENABLE //输出使能