TiveC微控制器基礎練習1 3原始碼

2021-10-06 19:05:12 字數 2710 閱讀 8098

基礎練習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...