1. 程式人生 > >STM32學習筆記 ——流水燈

STM32學習筆記 ——流水燈

重點: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燈電路圖
串接的電阻放在左邊可以減弱人觸控到LED時匯入到處理器的靜電。