STM8单片机GPIO操作

时间:2020-12-16 17:51:20

设置GPIO的寄存器包括:输出寄存器(ODR),输入寄存器(IDR),方向寄存器(DDR),控制寄存器1(CR1)和控制寄存器2(CR2),可以利用后面三个寄存器组配置GPIO的8种模式。

固件库函数给出了GPIO 8种模式的定义,在上面的基础上加入了输出高/输出低电平的状态。

GPIO_Mode_In_FL_No_IT    浮空输入,无外部中断

GPIO_Mode_In_PU_No_IT   上拉输入,无外部中断

GPIO_Mode_In_FL_IT        浮空输入,有外部中断

GPIO_Mode_Out_OD_Low_Fast  开漏输出低电平 10MHZ

GPIO_Mode_Out_PP_Low_Fast  推挽输出低电平  10MHZ

GPIO_Mode_Out_OD_Low_Slow  开漏输出低电平 2MHZ

GPIO_Mode_Out_PP_Low_Slow  推挽输出低电平 2MHZ

GPIO_Mode_Out_OD_HiZ_Fast  开漏输出高阻 10MHZ  

GPIO_Mode_Out_PP_High_Fast   推挽输出高电平  10MHZ

GPIO_Mode_Out_OD_HiZ_Slow  开漏输出高阻 2MHZ

GPIO_Mode_Out_PP_High_Slow  推挽输出高电平  2MHZ

单个GPIO口操作函数说明:

1、void GPIO_Init(GPIO_TypeDef* GPIOx, uint8_t GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode)

第一个参数是GPIO端口号,即GPIOA,GPIOB,GPIOC,GPIOD等;

第二个参数是GPIO管脚好,即GPIO_Pin_1,GPIO_Pin_2等;

第三个参数是GPIO模式,即上面所说八种模式之一,根据需要选取;

2、void GPIO_WriteBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, BitAction GPIO_BitVal)

第一参数,第二参数同 GPIO_Init,第三个参数为输出电平   SET 代表输出高,RESET代表输出低

3、BitStatus GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin)

第一参数,第二参数同 GPIO_Init;

返回值为当前输入脚的状态, 0代表低,1代表高。