stm32的學習就是弄懂是怎麼進行軟體配置,先明白硬體連線,再結合起來;
#include "stm32f4xx.h"
#include "led.h"
#define key0 gpio_readinputdatabit(gpioe,gpio_pin_4) // 這裡讀取io的狀態,將stm32的io口作為輸入使用
#define key1 gpio_readinputdatabit(gpioe,gpio_pin_3)
#define key2 gpio_readinputdatabit(gpioe,gpio_pin_2)
#define led0 pfout(9) //dso led的埠定義,可以有位帶操作實現某個io口的乙個位;這個是正點原子中的,標準庫中沒有
#define led1 pfout(10)
#define led2 pfout(9)&&pfout(10)
void key_init(void); //
u8 key_scan( u8 );
void delay(void) // 使用最簡單的方式實現延遲,這種方式僅僅用於測試
int main()
}delay();
//delay();
//gpio_resetbits(gpiof,gpio_pin_9);
//gpio_setbits(gpiof,gpio_pin_10);
////
gpio_resetbits(gpiof,gpio_pin_9);
//gpio_setbits(gpiof,gpio_pin_10);
}return 0;
}void key_init(void)
u8 key_scan( u8 mode)else if(key0==1&&key1==1&&key2==1) key=1;
return 0;
void led_init(void )
STM32的時鐘控制
stm32外部晶振經倍頻後提供系統時鐘常用設定 void rcc configuration void rcc sysclkconfig rcc sysclksource pllclk 設定pll為系統時鐘 while rcc getsysclksource 0x08 檢測系統的時鐘源是否是pll ...
stm32控制電機
使用埠gpioa來連線電機,所以給gpioa程式設計就可以控制電機。使用系統時鐘systick來週期性的給電機傳送脈衝。用四個按鈕來控制需要傳送脈衝的個數,每個按鈕被按下就設定給電機傳送脈衝的個數,如果上一次給電機傳送的脈衝沒有傳送完成,這次按鈕傳送的脈衝將不被響應。由於需要控制兩個電機,所以將gp...
STM32電燈總結
stm32點亮三個led燈學習總結 在進行位址進行巨集定義時候,一定要強制性型別轉化 現在我們開始對時鐘rcc裡面的rcc apb2 enr使能暫存器進行位址的巨集定義,有 define periph base unsigned int 0x40000000 define ahb periph ba...