天天看點

STM32點亮第一盞燈

STM32點亮第一盞燈

  • ​​1.在原理圖裡面找到燈的位置​​
  • ​​2.程式設計實作​​
  • ​​3.編譯、連接配接、下載下傳運作即可​​

1.在原理圖裡面找到燈的位置

打開原理圖,如下圖可以觀察到LED1對應的管腳是PA5

并且,陽極對應的就是PA5是以當PA5為高電平時點亮LED1

STM32點亮第一盞燈

2.程式設計實作

#include "stm32f10x.h"
 //延遲函數
 void Delay(u32 count)
 {
  u32 i=0;
  for(;i<count;i++);
 }
 int main(void)
 {  
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能PA口
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;        //配置端口PA5這個端口
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //模式為推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //IO速度是50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);        //初始化
  
  //GPIO_SetBits(GPIOA,GPIO_Pin_5);       //設定PA5端口為高電平
  GPIOA->BSRR = ((uint16_t)0x0020);            //或者使用位操作設定PA5端口為高電平
  
  while(1){
  GPIOA->BRR = ((uint16_t)0x0020);        //使用位操作設定PA5端口為低電平
  //GPIO_ResetBits(GPIOA,GPIO_Pin_5);     //或者使用函數的形式
  Delay(3000000);                         //延遲
  GPIOA->BSRR = ((uint16_t)0x0020);
  //GPIO_SetBits(GPIOA,GPIO_Pin_5);
  Delay(3000000);
  }
 }      

ODR寄存器可讀可寫:既能控制管腳為高電平,也能控制管腳為低電平。

管腳對于位寫1 gpio 管腳為高電平,寫 0 為低電平

3.編譯、連接配接、下載下傳運作即可

繼續閱讀