STM32點亮第一盞燈
- 1.在原理圖裡面找到燈的位置
- 2.程式設計實作
- 3.編譯、連接配接、下載下傳運作即可
1.在原理圖裡面找到燈的位置
打開原理圖,如下圖可以觀察到LED1對應的管腳是PA5
并且,陽極對應的就是PA5是以當PA5為高電平時點亮LED1
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 為低電平