日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]這塊三合一的開發(fā)板上有且只有一個(gè)按鍵,沒辦法,就拿這唯一的按鍵來用吧。吸取前面UART3的教訓(xùn),先看開發(fā)板的原理圖吧。這個(gè)按鍵被接到了STM8S207SB的PD7上,已做了上拉處理。為了簡單明了,還是點(diǎn)LED1吧。按一下LE

這塊三合一的開發(fā)板上有且只有一個(gè)按鍵,沒辦法,就拿這唯一的按鍵來用吧。吸取前面UART3的教訓(xùn),先看開發(fā)板的原理圖吧。這個(gè)按鍵被接到了STM8S207SB的PD7上,已做了上拉處理。為了簡單明了,還是點(diǎn)LED1吧。按一下LED1亮,再按一下LED1滅。好了,寫程序吧。

#i nclude

#define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 開發(fā)板上的LED1接在PD3上

void GPIO_init(void)
{
PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3輸出
PD_CR1 = 0x08; // 設(shè)置PD3為推挽輸出
PD_CR2 = 0x80; // 使能PD7外部中斷
}

void EXTI_init(void)
{
EXTI_CR1 = 0x80; // PD口下降沿觸發(fā)中斷
}

#pragma vector=0x02 // 這里很關(guān)鍵!看下面說明。
__interrupt void EXTI_PD7_TLI(void)
{
LED1_FLASH;
}
void init_devices(void)
{
asm("sim"); // 關(guān)全局中斷
GPIO_init();
EXTI_init();
asm("rim"); // 開全局中斷
}

void main( void )
{
init_devices();

// 主循環(huán)里沒有程序需要執(zhí)行
while(1);
}

  這里著重要說明的一點(diǎn)是PD7的外部中斷程序??戳艘幌滦酒謨?cè),PD口外部中斷EXTI3的中斷向量號(hào)是6,想當(dāng)然,又是想當(dāng)然,按IAR的規(guī)矩中斷向量要加2,就這樣寫#pragma vector=0x08,結(jié)果就是按下按鍵,程序沒響應(yīng)了,一直在中斷里不出來。接下來只能另想辦法,仔細(xì)翻了資料后發(fā)現(xiàn),PD7和PD其他端口不一樣,PD7后面拖了個(gè)小尾巴TLI,再看手冊(cè)上的TLI描述,乖乖,TLI擁有芯片最高級(jí)別中斷,享有獨(dú)立專用的中斷向量號(hào)0,這下就好辦了,按IAR的規(guī)矩,向量號(hào)加2,程序改成#pragma vector=0x02,重新來一遍編譯、下載、運(yùn)行,按鍵終于聽話了。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉