www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]STM8L系列單片機(jī)是ST公司推出的低功耗單片機(jī),與STM8S系列相比功耗降低了很多,但內(nèi)部結(jié)構(gòu)也刪減了很多,使用時(shí)一定要仔細(xì)閱讀手冊(cè)。這是第一次使用STM8,實(shí)現(xiàn)功能不是很復(fù)雜就沒想研究庫函數(shù),準(zhǔn)備直接控制寄存器操作

STM8L系列單片機(jī)是ST公司推出的低功耗單片機(jī),與STM8S系列相比功耗降低了很多,但內(nèi)部結(jié)構(gòu)也刪減了很多,使用時(shí)一定要仔細(xì)閱讀手冊(cè)。這是第一次使用STM8,實(shí)現(xiàn)功能不是很復(fù)雜就沒想研究庫函數(shù),準(zhǔn)備直接控制寄存器操作,沒想到本人因?yàn)橹袛鄦栴}糾結(jié)了大半天。

在外部中斷中這一點(diǎn)很不同,STM8S自動(dòng)清除外部中斷,而STM8L是需要軟件清除,清除標(biāo)志位的寄存器根據(jù)設(shè)置而不同,下面有說明。

下面以STM8L外部中斷PB1為例說明外部中斷寄存器操作

設(shè)置外部中斷有下面幾步:

第一步、設(shè)置IO口為中斷輸入通過設(shè)置(PB_DDR |= 0X00;PB_CR1 |= 0X02;PB_CR2 |= 0X02;)

第二步、設(shè)置中斷觸發(fā)方式(00: Falling edge and low level;01: Rising edge only;10: Falling edge only;11: Rising and falling edge)

第三步、更改中斷向量表(stm8_interrupt_vector.c文件中)

第四步、編寫中斷處理函數(shù),記住在函數(shù)里面清除中斷


第一步、設(shè)置IO口為中斷輸入

PB_DDR |= 0X00; //輸入

 PB_CR1 |= 0X02; // 0000_0010

 PB_CR2 |= 0X02; // 0000_0010 CR1與CR2結(jié)合確定為上拉外部中斷輸入

第二步、設(shè)置中斷觸發(fā)方式STM8L中PB與PD端口比較特殊可以有兩種觸發(fā)模式

 EXTI_CONF= 0x00;

這兩種觸發(fā)模式通過寄存器EXTI_CONF進(jìn)行設(shè)置

第一種方式與A,C port一樣通過下面兩個(gè)寄存器設(shè)置觸發(fā)模式設(shè)置寄存器EXTI_CONF[0]為0,表示Port B[3:0]使用第一種方式(我在此命名為普通方式)

  EXTI_CR1寄存器設(shè)置Port A, B, C and/or D external interrupts 的3、2、1、0引腳

  EXTI_CR2寄存器設(shè)置Port A, B, C and/or D external interrupts 的7、6、5、4引腳

第二種方式通過EXTI_CR3寄存器設(shè)置觸發(fā)模式EXTI_CONF[0]為1,表示Port B[3:0]使用第二種方式(我在此命名為特殊方式)

  EXTI_CR3寄存器的[3:2]位設(shè)置端口D的觸發(fā)模式

  EXTI_CR3寄存器的[1:0]位設(shè)置端口B的觸發(fā)模式

第三步、更改中斷向量表

  {0x82, KEY_Interrupt}, /* irq9 */

  PB1普通模式中斷向量號(hào)為9,其中KEY_Interrupt可以根據(jù)實(shí)際命名,只要和后面寫的中斷函數(shù)名一致就可以。

  為什么選擇為9看下面的圖片就知道了。

第四步、編寫中斷處理函數(shù)

  @far @interrupt void KEY_Interrupt(void)
  {
    LED1 = !LED1;
    //EXTI_SR2 = 0x01; //如果設(shè)置為特殊模式通過此寄存器清除中斷標(biāo)志位
    EXTI_SR1 |=0x02; //如果設(shè)置為普通模式通過此寄存器清除中斷標(biāo)志位

  }

在這一步驟中有兩點(diǎn)說明:

1、如果中斷執(zhí)行函數(shù)不想在stm8_interrupt_vector.c文件中編寫,需要在stm8_interrupt_vector.c 文件中添加這樣一個(gè)函數(shù)

  @far @interrupt void KEY_Interrupt(void);

2、EXTI_SR2 = 0x01; //如果設(shè)置為特殊模式通過此寄存器清除中斷標(biāo)志位
  EXTI_SR1 |=0x02; //如果設(shè)置為普通模式通過此寄存器清除中斷標(biāo)志位


中斷向量等級(jí):

通過下面的第一個(gè)表格可以知道如果我們用普通中斷模式端口B1的中斷屬于EXTI1(如果是PB2屬于EXTI2),特殊模式端口B的中斷屬于EXTIB and EXTID,

知道這點(diǎn)后我們結(jié)合手冊(cè)中的中斷向量表就知道我們應(yīng)該在哪個(gè)位置寫中斷入口函數(shù)名了。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

我們本希望循環(huán)5次,然后結(jié)束,但是實(shí)際情況是陷入了死循環(huán)。這種錯(cuò)誤在實(shí)際開發(fā)中,還比較難發(fā)現(xiàn)。其原因在于i的類型,無符號(hào)整型是永遠(yuǎn)不小于0的。我們需要將i的類型改為有符號(hào)型。

關(guān)鍵字: 死循環(huán) C 語言 空循環(huán)

MCS-51單片機(jī)有兩個(gè)外部中斷源INT0和INT1,它們分別在P3.2和P3.3引腳出現(xiàn)低電平或下降沿信號(hào)時(shí)向單片機(jī)發(fā)出中斷請(qǐng)求。外部中斷可用于檢測(cè)單片機(jī)外部發(fā)生的事件,如鍵盤敲擊和特定脈沖發(fā)生的次數(shù)等。

關(guān)鍵字: 51單片機(jī) 外部中斷

外部中斷是單片機(jī)實(shí)時(shí)地處理外部事件的一種機(jī)制。具體指的是,當(dāng)某種外部事件發(fā)生時(shí),單片機(jī)的中斷系統(tǒng)迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理;中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。這里我們以Nuc...

關(guān)鍵字: MCU 外部中斷 ST

STM32CubeMX是官方推薦的配置軟件,而HAL庫也是取代之前的庫函數(shù)的通用庫,所以STM32CubeMX+HAL庫是當(dāng)前主流的工程創(chuàng)建方式,HAL庫的可移植性也高于被取代的庫函數(shù)。 之前在[程序員小哈]的公眾號(hào)中寫...

關(guān)鍵字: LED 外部中斷

1.ARM中一些常見英文縮寫解釋 MSB:最高有效位; LSB:最低有效位; AHB:先進(jìn)的高性能總線; VPB:連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線; EMC:外部存儲(chǔ)器控制器; MAM:存儲(chǔ)器加速模塊; VIC:向量中...

關(guān)鍵字: ARM THUMB I2C 外部中斷

/********************************文件所用資源1.外部中斷0、1 定時(shí)中斷0、1 串口中斷2.端口:P3.0,P3.1,P3.3,P3.4,P3.5********************...

關(guān)鍵字: c51程序 串口中斷 外部中斷 定時(shí)中斷

#include #include #include int main(void){MCUCR |= (1

關(guān)鍵字: AVR gcc編程 單片機(jī) 外部中斷

剛拿到探索套件,還以為MCU直接測(cè)量電流啊,原來是通過電壓間接測(cè)量的。當(dāng)JP1處于ON的位置,能夠提供IDD測(cè)量電路測(cè)量;JP1處于OFF位置,測(cè)量裝置被旁路;當(dāng)JP1跳線帽被拔出,可以使用萬用表測(cè)量管腳1和2的電流。測(cè)...

關(guān)鍵字: stm8l 測(cè)量電流 idd

因?yàn)闆]有中斷的清除標(biāo)志位,這一點(diǎn)與其它單片機(jī)是不同的。EXTI_CR1 觸發(fā)邊沿的設(shè)置要在總中斷沒開時(shí)才能寫入!PD7 是 不可屏蔽的最高優(yōu)先級(jí)的硬件中斷(TLI)設(shè)置順序:最好先關(guān)中斷 設(shè)置邊沿 開啟引腳 最后開總中斷...

關(guān)鍵字: stm8s 外部中斷

以下總結(jié)參考原子STM32開發(fā)指南STM32F103 的中斷控制器支持 19 個(gè)外部中斷/事件請(qǐng)求。STM32F103 的19 個(gè)外部中斷為:線 0~15:對(duì)應(yīng)外部 IO 口的輸入中斷。線 16:連接到 PVD 輸出。線...

關(guān)鍵字: STM32 外部中斷
關(guān)閉