GPIO
结构体编译前需定义命名
GPIO_InitTypeDef(空格)GPIO_InitStructure;
八种工作模式
GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
GPIO_Pin多个定义,双击到定义,member
例子:
PA0--GPIOA--Pin0——
Out_PP GPIOA Pin0----
Mode Pin
(例:PA0口)GPIO初始化:
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_WriteBit(GPIOX,GPIO_Pin_X,Y);
X = A~G; X = 0-15; Y = Bit_SET(设置高电平)/Bit_RESET(设置低电平)
GPIO_SetBits和GPIO_ResetBits无上第三项参数
特别的:若想将bit set和bit reset,高低电平分别以1和0表示,则需加上枚举类型(bitaction),如(BitAction)0---Y位置。
推挽模式下高低电平均有驱动模式;
开漏输出模式高电平没有驱动能力;//高阻状态
开漏输出模式低电平有驱动能力。//即能用不能用问题
GPIO
传感器:上拉电阻+下拉电阻
AO排针输出
数字化输出(电压运算比较器)(二值化输出---LM393)
比较器:
同相>反相:输出max
同相<反相:输出min(二值化)
IN+ —— AO IN- —— DO(数字输出(二值化))
两点电压
(IN-:分压电压,IN+:上下拉电压,分别作为同相电压和反相电压→比较器→输出阈值)
红圈:指示DO的输出电平
补充寻迹小车模块功能
接法
、
不同::
按键:按下:低电平输出
悬空:引脚电压不确定——所以必须用上拉输入的模式只保证下按键接地后输出低电平,防止悬空输出不确定电压(即悬空=输出高电平)
上拉(弹簧):
按键:按下:接地(无穷大力下拉)—— 输出低电平
不按:上拉电阻 —— 输出高电平 (这里≠悬空)
所以可设置引脚为 浮空或者上拉输入
这里是两个上拉电阻作用,高电平更稳定,低电平时切换损耗更大。
总结
引脚:
上拉输入 上拉/浮空 下拉 下拉/浮空
按键:推荐
按下:低电平 低电平 高电平 高电平
不按:高电平 高电平 低电平 低电平