基礎練習1.3,按鍵控制led燈亮滅實驗的參考**.
#include #include #include "inc/hw_gpio.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
void main(void)
//使能pd外設的時鐘,並等待ready
sysctlperipheralenable(sysctl_periph_gpiod);
while(!sysctlperipheralready(sysctl_periph_gpiod))
//使能pf外設的時鐘,並等待ready
sysctlperipheralenable(sysctl_periph_gpiof);
while(!sysctlperipheralready(sysctl_periph_gpiof))
//-----------引腳配置-------------
//pa4->綠色led,將pa4配置成gpio,輸出
gpiopintypegpiooutput(gpio_porta_base, gpio_pin_4);
//pd6->紅色led,將pd6配置成gpio,輸出
gpiopintypegpiooutput(gpio_portd_base, gpio_pin_6);
//pf0->藍色led,將pf0配置成gpio,輸出
hwreg(gpio_portf_base+gpio_o_lock) = gpio_lock_key;
hwreg(gpio_portf_base+gpio_o_cr) |= gpio_pin_0;
hwreg(gpio_portf_base+gpio_o_lock) = 0x0;
gpiopintypegpiooutput(gpio_portf_base, gpio_pin_0);
//pd7->k1,將pd7配置成gpio,輸入
hwreg(gpio_portd_base+gpio_o_lock) = gpio_lock_key;
hwreg(gpio_portd_base+gpio_o_cr) |= gpio_pin_7;
hwreg(gpio_portd_base+gpio_o_lock) = 0x0;
gpiopintypegpioinput(gpio_portd_base, gpio_pin_7);
//pf4->k2,將pf4配置成gpio,輸入
gpiopintypegpioinput(gpio_portf_base, gpio_pin_4);
//pa3->k3,將pa3配置成gpio,輸入
gpiopintypegpioinput(gpio_porta_base, gpio_pin_3);
//pa2->k4,將pa2配置成gpio,輸入
gpiopintypegpioinput(gpio_porta_base, gpio_pin_2);
//-----------led狀態初始化-------------
//pa4輸出高電平,綠色led滅
gpiopinwrite(gpio_porta_base,gpio_pin_4,0xff);
//pd6輸出高電平,紅色led滅
gpiopinwrite(gpio_portd_base,gpio_pin_6,0xff);
//pf0輸出高電平,藍色led滅
gpiopinwrite(gpio_portf_base,gpio_pin_0,0xff);
led2 = 0;
led3 = 0;
led4 = 0;
//按鍵動作的電平示意圖:
//(1) 使用者沒有動作時,高電平; 使用者按下時, 低電平
//// +-----+ +------+
// 按下| 鬆開 | 按下 | |
// ---+ +-----+ +---------
//while(1)
else
//(3.1.2)等待按鍵釋放, 不然執行完大迴圈 之後又會再次進入(3.1.1)
while(0 == gpiopinread(gpio_portd_base,gpio_pin_7));
}//pf4->k2
//(3.2)判斷第乙個按鍵,讀取這個引腳的電平,是否為低電平,表示按鍵按下進入函式(3.2.1)
if(0 == gpiopinread(gpio_portf_base,gpio_pin_4))
else
//(3.2.2)等待按鍵釋放, 不然執行完大迴圈 之後又會再次進入(3.2.1)
while(0 == gpiopinread(gpio_portf_base,gpio_pin_4));
}//pa3->k3
//(3.3)判斷第乙個按鍵,讀取這個引腳的電平,是否為低電平,表示按鍵按下進入函式(3.3.1)
if(0 == gpiopinread(gpio_porta_base,gpio_pin_3))
else
//(3.3.2)等待按鍵釋放, 不然執行完大迴圈 之後又會再次進入(3.3.1)
while(0 == gpiopinread(gpio_porta_base,gpio_pin_3));}}
}
微控制器入門基礎
1什麼時鐘?首先我們先講講什麼是時鐘。時鐘就是微控制器的心臟。每跳動一下。整個微控制器的各個電路就同步的動作一下。就好像我們做廣播體操的時候 廣播上喊的節拍1234 2234 3234。然後我們全部的同學就按照這個節奏進行乙個個動作。節拍越快我們動作越快。節拍越慢我們動作的越慢。內部時鐘和外部時鐘?...
微控制器學習(一) 微控制器基礎 STM32
io四種輸入工作模式 io四種輸出工作模 stm32有8個16位定時器 stm32具有強大的異常響應系統,它把能夠打斷當前 執行流程的事件分為異常 exception 和中斷 interrupt 並把它們用乙個表管理起來,編號為 3 6的中斷向量定義為系統異常,編號從7到19的為外部中斷。中斷向量控...
微控制器基礎知識
微控制器的外部結構 dip40雙列直插 p0,p1,p2,p3四個8位準雙向i o引腳 作為i o輸入時,要先輸出高電平 電源vcc pin40 和地線gnd pin20 高電平復位reset pin9 10uf電容接vcc與reset,即可實現上電復位 內建振盪電路,外部只要接晶體至x1 pin1...