|
第六课I/O输入输出
1、GPIO口的概念 高低电平,高电平就输出VCC电压,低电平就输出 GND。注:工作电压1.9-5.5v,不低于3v 2、IO口的模式 a、准双向 b、推挽输出 c、高阻输入 d、开漏模式 3.3V供电,施密特触发器,高电平不能低于1.18V,低电平不能高于0.99V 3、按键触发(没按下是高电平,按下之后低电平) 代码实现原理,程序读取按键的IO的电平即可,一般使用“==” 4、任务 A、按下P32按钮灯亮,松开P32按钮灯灭 if( P32 == 0 ) //判断P32按钮是否按下 { P20 = 0; } else { P20 = 1; } B、按下P32按钮灯灭,松开P32按钮灯亮 if( P32 == 1 ) { P20 = 0; } else { P20 = 1; } C、按一灯亮,按一下灯灭 if( P32 == 0 ) //判断P32按钮是否按下 { Delay20ms(); //延时20ms消抖 if( P32 == 0 ) { state = !state; //变量取反 0 1 0 1 0 1 P20 = state; printf("state:%d\r\n",(int)state); while( P32 == 0 ); //等待P32松开 } } 注:机械按钮按下或松开有抖动,一般20ms以内
|