STM32F051C8T6控制LED
生活随笔
收集整理的這篇文章主要介紹了
STM32F051C8T6控制LED
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、概述
不管什么單片機,想要控制LED燈,只能是通過控制單片機芯片的I/O引腳電平的高低來實現。
同樣在ST單片機上,I/O引腳可以被軟件設置成各種不同的功能,如輸入或輸出,所以被稱為 GPIO (General-purpose I/O)。
而GPIO引腳又被分為GPIOA、GPIOB??GPIOG不同的組,每組端口分為 0~15,共16個不同的引腳不等,
對于不同型號的芯片,端口的組和引腳的數量不盡相同,具體請參考相應ST單片機芯片型號的datasheet。?
根據ST單片機的GPIO特點,控制LED燈的步驟如下:?
1.在眾多 GPIO端口引腳中選定需要控制的特定引腳[與LED相連的控制引腳]?
2.根據外設配置GPIO需要的特定功能?
3.通過設置 GPIO輸出電壓的高低控制LED的亮和滅
二、硬件電路圖
三、需要用到的庫函數
四、應用程序設計
main.c
/********************************************************* *平臺:MDKARM 5.14 *主控:STM32F051C8T6 **********************************************************/ #include "stm32f0xx.h" #include "led.h" #include "delay.h"int main (void) { Delay_Init(48); //延時函數初始化LED_Init(); //LED初始化while (1){LED_Not(0);Delay_ms( 500 );<span style="white-space:pre"> </span>//控制閃爍速度} }led.c #include "led.h"//LED控制端口初始化 void LED_Init(void) {GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); //開啟CPIOB時鐘 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12; //選擇控制引腳GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //設置為輸出模式GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; //設置為推挽方式GPIO_InitStructure.GPIO_Speed=GPIO_Speed_Level_3; //設置引腳速度為高速GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; //設置引腳為沒有上下拉GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化函數 //初始化LED關閉GPIO_ResetBits(GPIOB, GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12);}void LED_Not(int n) {switch(n){//對引腳電平取反case 0: GPIO_WriteBit(GPIOB, GPIO_Pin_15,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_15))));break;case 1: GPIO_WriteBit(GPIOB, GPIO_Pin_14,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_14))));break;case 2: GPIO_WriteBit(GPIOB, GPIO_Pin_13,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_13))));break;case 3: GPIO_WriteBit(GPIOB, GPIO_Pin_12,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_12))));break;default: break;} }這樣編譯下載后就能看到LED一閃一閃的
總結
以上是生活随笔為你收集整理的STM32F051C8T6控制LED的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java正则表达式草稿程序*2
- 下一篇: 槽铣削 和 径向槽铣 知识点