stm32f1 与 stmf4 部分函数区别
学习记录
学习中经常要把框架相同的工程代码用到不同单片机,stm32的f1与f4的部分函数有区别,这里不能全部列出来,只能遇到一个记一个。
时钟
相同IO口在两单片机上的时钟使能可能不一致,查看函数数据有效性可解决。
重映射
stm32f1 : RCC_APB2Periph_AFIO
stm32f4:GPIO_PinAFConfig()
f4没有RCC_APB2Periph_AFIO函数,用GPIO_PinAFConfig()函数,函数有三个参数(GPIOx,GPIO_PinSource x,GPIO_AF)
示例:配置SPI2管脚(部分)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB, ENABLE); //stm32f1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
//*************************************************************************
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); //stm32f4
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_SPI2);
GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_SPI2);
结构体GPIO_TypeDef
f1结构体里面的BSRR 相当于f4的BSRRL;
f1结构体里面的BRR 相当于f4的BSRRH;
结构体GPIO_InitTypeDef
f1结构体里面的GPIO_Mode_AF_PP相当于f4的GPIO_Mode_AF
f1结构体里面的GPIO_Mode_Out_PP相当于GPIO_Mode_OUT