STVD下STM8L151使用官方韌體庫開發

2021-07-09 07:26:55 字數 3627 閱讀 1410

相信很多朋友在stm8的開發中很多是使用官方的韌體庫來進行開發的,這樣開發速度快,並且程式不易出錯。

前面的部落格講到了如何在stvd中新建乙個新的stm8l151的工程,最後新建成功後,出現下面的工程目錄:

在stm8_interrupt_vector.c 檔案中,**如下:

/*	basic interrupt vector table for stm8 devices

*/typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector ;

@far @interrupt void nonhandledinterrupt (void)

extern void _stext(); /* startup routine */

struct interrupt_vector const _vectab = , /* reset */

, /* trap */

, /* irq0 */

, /* irq1 */

, /* irq2 */

, /* irq3 */

, /* irq4 */

, /* irq5 */

, /* irq6 */

, /* irq7 */

, /* irq8 */

, /* irq9 */

, /* irq10 */

, /* irq11 */

, /* irq12 */

, /* irq13 */

, /* irq14 */

, /* irq15 */

, /* irq16 */

, /* irq17 */

, /* irq18 */

, /* irq19 */

, /* irq20 */

, /* irq21 */

, /* irq22 */

, /* irq23 */

, /* irq24 */

, /* irq25 */

, /* irq26 */

, /* irq27 */

, /* irq28 */

, /* irq29 */

};

**中的中斷向量表需要我們自己修改,至於如何修改在stm8l151的官方韌體庫里有,下面看一下官方韌體庫里的stm8_interrupt_vector.c檔案,**如下:

/*	basic interrupt vector table for stm8 devices

*/#include "stm8l15x_it.h"

typedef void @far (*interrupt_handler_t)(void);

struct interrupt_vector ;

struct interrupt_vector const _vectab = , /* reset */

, /* trap - software interrupt */

, /* reserved */

, /* irq1 - flash interrupt */

, /* irq2 - dma1 channel0 and channel1 interrupt */

, /* irq3 - dma1 channel2 and channel3 interrupt */

, /* irq4 - rtc/ css on lse interrupt */

, /* irq5 - external it porte/f interrupt /pvd interrupt*/

, /* irq6 - external it portb / portg interrupt */

, /* irq7 - external it portd / porth interrupt */

, /* irq8 - external it pin0 interrupt */

, /* irq9 - external it pin1 interrupt */

, /* irq10 - external it pin2 interrupt */

, /* irq11 - external it pin3 interrupt */

, /* irq12 - external it pin4 interrupt */

, /* irq13 - external it pin5 interrupt */

, /* irq14 - external it pin6 interrupt */

, /* irq15 - external it pin7 interrupt */

, /* irq16 - lcd / aes interrupt */

, /* irq17 - clk switch/css interrupt/ tim1 break interrupt / dac */

, /* irq18 - adc1 and comparator interrupt */

, /* irq19 - tim2 update/overflow/trigger/break / usart2 tx interrupt */

, /* irq20 - tim2 capture/compare / usart2 rx interrupt */

, /* irq21 - tim3 update/overflow/trigger/break / usart3 tx interrupt */

, /* irq22 - tim3 capture/compare /usart3 rx interrupt */

, /* irq23 - tim1 update/overflow/trigger/commutation interrupt */

, /* irq24 - tim1 capture/compare interrupt */

, /* irq25 - tim4 update/overflow/trigger interrupt */

, /* irq26 - spi1 interrupt */

, /* irq27 - usart1 tx / tim5 update/overflow/trigger/break interrupt */

, /* irq28 - usart1 rx / tim1 capture/compare interrupt */

, /* irq29 - i2c1 / spi2 interrupt */

};

直接將這個檔案替換原來的檔案即可。

另外需要將韌體庫里的libraries的inc、src資料夾的檔案放到工程裡面。還有stm8l15x_conf.h、stm8l15x_it.c、stm8l15x_it.h放到工程裡。並配置stm8l15x_conf.h裡的mcu選擇,最後的工程檔案架構大概如下:

到這裡,就可以使用官方的韌體庫來進行開發了。

STVD 新建STM8L151工程

最近從iar轉到stvd來進行stm8l151的開發,看了一下如何配置stvd的開發環境以及如何新建工程,在這個就做個備忘吧。1.先安裝stvd 和 cosmic c編譯器,cosmic 編譯器有8k的編譯限制,但據官網上說好像可以免費到32k了。2.新建一 個workspace,3.填寫works...

STM8L151G6U6 之實現低功耗

先簡單介紹下stm8l151g6u6,該mcu是stm8l超低功耗系列,與152系列相比只是少了lcd的功能,官方手冊介紹的各個低功耗模式的功耗如下 其低功耗效能還是很不錯的,在本文中是基於活躍停機低功耗模式來測試的。要實現stm8l151g6的低功耗,主要可以注意以下幾點 1.不需要用到的外設一律...

STM8L151G6U6 之實現低功耗RTC喚醒

所謂低功耗產品,一般來講就是在大多數時間讓mcu進入睡眠模式,在有資料更新時喚醒,將資料顯示或者傳送上報。對於中斷型別的,可以採用中斷直接喚醒mcu的方式,而對於溫濕度之類的感測器,只能採用定時喚醒,然後取樣並比較判斷當前的值是否傳送變化,然後顯示或者上報。如果使用了顯示屏,wifi 藍芽等模組,則...