在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具有隨機訪問和隨位元組執行寫操作的能力,即可以訪問到儲存器內部的任意乙...