资源描述:
《STM32F4库函数笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mode_IN_FLOATING浮空输入(3)GPIO_Mode_IPD下拉输入(4)GPIO_Mode_IPU上拉输入(5)GPIO_Mode_Out_OD开漏输出(6)GPIO_Mode_Out_PP推挽输出(7)GPIO_Mode_AF_OD复用开漏输出(8)GPIO_Mode_AF_PP复用推挽输出平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种推挽输出:可以输出高,低电平,连接数字器件;开漏输出:输出端相当于三极管的集电极.要得到高电平状态需要上拉电阻
2、才行,一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平。浮空输入:由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。GPIOGPIO_Init函数初始化{GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GP
3、IOF时钟//GPIOF9,F10初始化设置GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9
4、GPIO_Pin_10;//LED0和LED1对应IO口GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.
5、GPIO_PuPd=GPIO_PuPd_UP;//上拉GPIO_Init(GPIOF,&GPIO_InitStructure);//初始化GPIOF9,F10}2个读取输入电平函数:uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);作用:读取某个GPIO的输入电平。实际操作的是GPIOx_IDR寄存器。例如:GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5);//读取GPIOA.5的输入电平uint16_tGPIO_
6、ReadInputData(GPIO_TypeDef*GPIOx);作用:读取某组GPIO的输入电平。实际操作的是GPIOx_IDR寄存器。例如:GPIO_ReadInputData(GPIOA);//读取GPIOA组中所有io口输入电平2个读取输出电平函数:uint8_tGPIO_ReadOutputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);作用:读取某个GPIO的输出电平。实际操作的是GPIO_ODR寄存器。例如:GPIO_ReadOutputDataBit(GPIOA,G
7、PIO_Pin_5);//读取GPIOA.5的输出电平uint16_tGPIO_ReadOutputData(GPIO_TypeDef*GPIOx);作用:读取某组GPIO的输出电平。实际操作的是GPIO_ODR寄存器。例如:GPIO_ReadOutputData(GPIOA);//读取GPIOA组中所有io口输出电平4个设置输出电平函数:voidGPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);作用:设置某个IO口输出为高电平(1)。实际操作BSRRL寄存器voidGPIO
8、_ResetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);作用:设置某个IO口输出为低电平(0)。实际操作的BSRRH寄存器。voidGPIO_WriteBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,BitActionBitVal);voidGPIO_Write(GPIO_TypeDef*GPIOx,uint16_tPortVal);后两个函数不常用,也是用来设置IO口输出电平。端口复用为复用功能配置过程-以PA9,PA10配置为串口1为例1、GPIO端
9、口时钟使能。RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);2、复用外设时钟使能。比如你要将端口PA9,PA10复用为串口,所以要使能串口时钟。RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,