|
STM32單片機(jī)體積小,功能強(qiáng),現(xiàn)在越來越多的人學(xué)習(xí),小編也上一個STM32的教程,當(dāng)然,入門教程肯定是如何點亮LED。
小編使用的開發(fā)版是一個很小巧的開發(fā)板,避免廣告只嫌就不說從哪兒買的,喜歡的自行購買。
電路圖如下:

可見D2,D3,D4是低電平驅(qū)動的,由于STM32是3.3v電壓,所以這樣是可以用的,只要電阻大點,就會防止灌電流太大。由于是低電平驅(qū)動,那么我們給STM32的PC1,PC3,PC13給低電平LED就會亮,這是基本原理,接下來我們程序?qū)崿F(xiàn)。
#include<stm32f10x.h>
void delay(unsigned long n)
{
unsigned long t;
for(;n>0;n--)
for(t=1000;t>0;t--)
;
}
int main(){
//定義一個GPIO初始化結(jié)構(gòu)體,要在RCC使能之前定義,否則會報錯
GPIO_InitTypeDef GPIO_InitStruct,GPIO_InitStruct2;
//初始化RCC并使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//設(shè)置要初始化的GPIO的管腳
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_13;
//設(shè)置要初始化的GPIO的速度
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
//設(shè)置要初始化的GPIO的模式
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_OD;
//調(diào)用初始化函數(shù),傳入?yún)?shù)為GPIO初始化結(jié)構(gòu)體的地址
GPIO_Init(GPIOC, &GPIO_InitStruct);
//在循環(huán)中給GPIO_Pin_1不斷置位復(fù)位,也就是給高低電平,可以用來點亮對應(yīng)管腳的led
while(1){
//GPIO管腳置位函數(shù),第一個參數(shù)為那個GPIO口,第二個為GPIO口的第幾個引腳
GPIO_SetBits(GPIOC, GPIO_Pin_1);
GPIO_ResetBits(GPIOC, GPIO_Pin_3);
delay(10);
//GPIO管腳復(fù)位函數(shù),第一個參數(shù)為那個GPIO口,第二個為GPIO口的第幾個引腳
GPIO_ResetBits(GPIOC, GPIO_Pin_1);
GPIO_SetBits(GPIOC, GPIO_Pin_3);
delay(10);
}
return 0;
}
以上代碼是在Keil5.17下實現(xiàn)的,由于新版的Keil提供了Pack的功能,也就是我們之前手動添加的其他相關(guān)庫文件,現(xiàn)在直接可以通過勾選去實現(xiàn)添加,見下圖:點擊圖中花圈的1,就可以打開添加各種外設(shè)頭文件的窗口。

然后選擇需要的功能,勾選即可。
下面放出keil5.17for arm的安裝包和綠化工具(你懂得)在51黑搜索即可找到
|
|