20170725——按鍵輸入實驗

1.見下圖,爲什麼說KEY0和KEY1是低電平有效,而WK_UP是高電平有效?

這裏寫圖片描述

2.上拉電阻

這裏寫圖片描述
1、概念:將一個不確定的信號,通過一個電阻與電源VCC相連,固定在高電平;
2、上拉是對器件注入電流;灌電流;
3、當一個接有上拉電阻的IO端口設置爲輸入狀態時,它的常態爲高電平;

對於IO來說,電流永遠都是從VCC流入IO,不可能從地流入IO,對於器件來講,是輸入電流,是灌電流,增大電流;

3.下拉電阻

這裏寫圖片描述
1、 概念:將一個不確定的信號,通過一個電阻與地GND相連,固定在低電平;
2、下拉是從器件輸出電流;拉電流;
3、當一個接有下拉電阻的IO端口設置爲輸入狀態時,它的常態爲低電平;

對於器件來講,電路永遠都是從器件流向地,是輸出電流;

有的單片機電路接上拉電阻,是爲了加大輸出引腳的驅動能力;上拉電阻阻值一般1K~10K之間;下拉電阻一般用的比較少;

自己已經理解了上拉電阻和下拉電阻,但是有資料對兩者更詳細的講解,鏈接如下,有時間自己好好分析分析:

http://www.360doc.com/content/13/0812/13/13093294_306597566.shtml

3. STM32的IO做輸入使用的時候,是通過調用函數GPIO_ReadInputDataBit( )來讀取IO口的狀態的,程序功能:通過按鍵控制小燈的亮滅,三個按鍵對應得IO分別是PA15、PC5、PA0,因爲PA15佔用了JTAG的一個IO,所以程序中需要將JTAG禁止,Key.c函數如下:

#include"key.h"
#include"delay.h"

//按鍵初始化函數,PA15和PC5設置成輸入
void KEY_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

GPIO_InitStrucrute.GPIO_Pin=GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;設置上拉輸入;
GPIO_Init(GPIOA,&GPIO_InitStructure); 初始化GPIOA15;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIOC,&GPIO_InitStructure); 初始化GPIOC5;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;設置爲輸入,默認下來;
GPIO_Init(GPIOA,&GPIO_InitStructure);初始化GPIOA0;
}

按鍵掃描模式那裏的程序沒看懂,啥意思???明天繼續編輯本文檔;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章