STM32F429點亮led實驗

2021-09-26 10:36:05 字數 1595 閱讀 2680

在stm32f429中點亮led通過控制引腳的高低電平來實現,在f429的hal庫中控制引腳高低電平的函式:

void hal_gpio_writepin(gpio_typedef gpiox, uint16_t gpio_pin, gpio_pinstate pinstate);*

使用樣例(引腳pb1輸出低電平):

hal_gpio_writepin(gpiob,gpio_pin_1,gpio_pin_reset);

(reset: 輸出低電平 ; set:輸出高電平)

stm32f429中通過idr暫存器來接收gpio口的輸入電平:

通過odr暫存器來控制gpio口的輸出電平:

該暫存器用於設定某個 io 輸出低電平(odry=0)還是高電平(odry=1),該暫存器也僅在輸出模式下有效。

舉例:如果我要使得pb2口輸出高電平(即:odr2=1),其餘口為低電平:

odr暫存器16位可以表示成:0000 0000 0000 0100(賦值即:0x04);

則**可以寫成:gpiob->odr=0x04;

bsrr暫存器

暫存器 bsrr,它叫 置位/復位暫存器。該暫存器和 odr 暫存器具有類似的作用,都可以用來設定 gpio 埠的輸出位是 1 還是 0。

bsrr暫存器是個32位的暫存器,它分為高16位和低16位。

對於低16位即 bsy[15:0]:當被寫為「1」時,對應引腳輸出高電平; 寫「0」時,無影響。

對於高16位即 bry[31:16]:當被寫為「1」時,對應引腳輸出低電平; 寫「0」時,無影響。

舉例:如果我要使得pb2口輸出高電平,再使其輸出低電平,而其餘口為低電平:

則**可以寫成:

gpiob->bsrr=0x04;---------------------------- // pb2口輸出高電平

gpiob->bsrr=0x04<<16;---------------------- // pb2口輸出低電平

「<

主函式是使用hal庫函式實現控制io口輸出:

int

main

(void

)}

下面主函式使用直接操作暫存器方式實現跑馬燈

//gpioa->bsrr低16位某位為「1」,則對應的io埠引腳置「1」;

//gpioa->bsrr高16位某位為「1」,則對應的io埠引腳置「0」;

intmain

(void

)}

STM32F429除錯記錄(一)

stm32f429的晶元有兩路can介面 四路串列埠 內部乙太網以及內部dsp處理器等硬體,硬體的豐富程度可見一斑,而且主頻達到180mhz,雖然比a8 a9架構的arm晶元還是差一大截,但是在工業控制上的應用還是比較多的。在程式編寫方面stm32f4系列不管在mdk還是庫函式都有挺大改動,剛著手除...

STM32F429 如何使用SDRAM

關於stm32f429 控制sdram fmc 擴充套件外部sdram 1 原理介紹 為什麼是fmc 不是 fsmc 區別在那裡!stm32f429使用fmc外設來管理擴充套件的儲存器,fmc是flexible memory controller的縮寫,譯為可變儲存控制器。它可以用於驅動包括sram...

STM32F429 如何使用NAND Flash

1 原理介紹 flash即是儲存晶元的一種,其結合了rom和ram的特點,既具備電可擦除程式設計的效能,又可以快速讀取資料,資料不會因斷電丟失。目前市面上flash主要有nor flash和nand flash。nor flash具有隨機訪問和隨位元組執行寫操作的能力,即可以訪問到儲存器內部的任意乙...