STM32學習筆記 ——流水燈
阿新 • • 發佈:2019-01-02
重點:GPIO埠配置
程式碼:
#include "stm32f10x.h"
#define Led1_On GPIO_ResetBits(GPIOD, GPIO_Pin_2);//低電平點燈
#define Led1_Off GPIO_SetBits(GPIOD, GPIO_Pin_2);
#define Led2_On GPIO_ResetBits(GPIOD, GPIO_Pin_3);
#define Led2_Off GPIO_SetBits(GPIOD, GPIO_Pin_3);
#define Led3_On GPIO_ResetBits(GPIOD, GPIO_Pin_4);
#define Led3_Off GPIO_SetBits(GPIOD, GPIO_Pin_4);
#define Led4_On GPIO_ResetBits(GPIOD, GPIO_Pin_7);
#define Led4_Off GPIO_SetBits(GPIOD, GPIO_Pin_7);
void LED_Init(void);
void Delay(__IO uint32_t nConut);
/******LED燈埠配置******/
void LED_Init()
{
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_Structure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_7;
GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Structure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_Structure);
}
int main()
{
LED_Init();
while(1){
Led1_On;
Delay(800000);
Led1_Off;
Delay(800000);
Led2_On;
Delay(800000);
Led2_Off;
Delay(800000);
Led3_On;
Delay(800000);
Led3_Off;
Delay(800000);
Led4_On;
Delay(800000);
Led4_Off;
Delay(800000 );
}
}
/******延時函式******/
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
筆記:
1. 開發板的GPIO管腳採用低電平點燈,管腳只要輸出低電平即可點燈,處理器功耗低。
串接的電阻放在左邊可以減弱人觸控到LED時匯入到處理器的靜電。