STM32 STM8L STM8S系列之一 流水燈

2021-07-27 18:54:54 字數 1440 閱讀 7106

//function:led初始化

//para :無

//return :無

void led_init(void)

//main函式

int main(void)

}

一開始檢查**都正常,貌似沒有錯誤,可是燈就是不亮,後來看手冊發現原來pb3、pb4引腳都有個復用功能,系統預設使用了復用的功能,從而不再是通用io輸出功能,需要把復用功能關掉,才能正常輸出io訊號。

如下圖:

可以看到,預設功能是jtdo和jntrst,所以把這兩個功能關閉即可。對應**為led初始化函式 led_init() 中的以下兩行:

//關閉pb3 pb4的復用功能,使能pb2、pb3的通用io功能

rcc_apb2periphclockcmd(rcc_apb2periph_afio | rcc_apb2periph_gpiob , enable);

gpio_pinremapconfig(gpio_remap_swj_jtagdisable,enable);

待補充點亮led,流程跟stm32基本一樣:

廢話不說,上**:

//funcktion: led燈gpio口初始化

//para : 無

//return : 無

void led_config()

//funcktion: 開啟led燈

//para : 無

//return : 無

void led_on()

//funcktion: 關閉led燈

//para : 無

//return : 無

void led_off()

因為使用的是*pb4和pb5這兩個gpio口,檢視資料手冊可以看到如下圖:

可以看到紅圈內標記該gpio口為t(3),繼續下翻,到該**的最下面,有關t(3)的描述:

英語不好,就不獻醜翻譯了,反正意思是要自己在外部新增上拉電阻或下拉電阻,不然沒用。

於是,趕緊找個導線,飛個線,接個電阻,ok,完事,亮了。。。。

STM8S 串列埠應用 UART2 STM8S105

少說話。多做事,下面是我驗證過沒有問題的串列埠傳送接受資料 使用mcu stm8s105c6 uart2 初始化時呼叫 gpio deinit gpiod configure pd5 6 gpio init gpiod,gpio pin 5,gpio mode in pu no it 傳送資料io ...

stm8s和stm8l低功耗對比

在低功耗應用中,一般來說mcu是常態halt模式,然後偶爾被喚醒 外部中斷或者內部定時喚醒 進入執行模式。所以對比低功耗效能,一般來說只需要對比run模式和halt下的功耗即可,因為專案選用的是通過內部定時器喚醒,所以選用active halt mode。以下是stm8s003和stm8l151在這...

STM8S時鐘配置

1 stm8時鐘說明 stm8上電復位後預設使用內部的高速時鐘,並分頻成為2m用於系統執行。如果我們想要使用外部時鐘,需要進行時鐘切換,切換過程中還需要使用stvp進行晶元選項字的更改。2 stm8s時鐘配置 庫函式版 1 配置內部高速振盪器 hsi 的分頻器 1分頻 clk hsiprescale...