国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32按鍵控制LED

這篇具有很好參考價值的文章主要介紹了STM32按鍵控制LED。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.利用模塊化編程對LED

#include "stm32f10x.h"
//首先是初始化LED,開始使LED為高電平(即使之全部熄滅),LED為推挽輸出
    void LED_Init(void)
    {
        //打開RCC
	    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);
        //配置GPIO的三種模式
	    GPIO_InitTypeDef GPIO_InitStruct;
	    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
	    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	    GPIO_Init(GPIOA,&GPIO_InitStruct);
	
	    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
	    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	    GPIO_Init(GPIOD,&GPIO_InitStruct);

	    開始使LED為高電平(即使之全部熄滅)
	    GPIO_SetBits(GPIOA, GPIO_Pin_8);
	    GPIO_SetBits(GPIOD, GPIO_Pin_2);
	}
    
    

2.設(shè)置LED的幾種狀態(tài)(亮,滅,和利用按鍵反轉(zhuǎn)電平)

//為LED8的亮狀態(tài)
void LED8_GPIOA_ON(void)
{
	GPIO_ResetBits(GPIOA, GPIO_Pin_8);
}

//為LED8的滅狀態(tài)
void LED2_GPIOA_OFF(void)
{
	GPIO_SetBits(GPIOA, GPIO_Pin_8);
}

//利用按鍵進行電平反轉(zhuǎn)控制LED亮滅
void LED8_Turn(void)
{
	//讀取外部電平的值
	if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_8)==0)
	{
		GPIO_SetBits(GPIOA, GPIO_Pin_8);
	}
	else
	{
		GPIO_ResetBits(GPIOA, GPIO_Pin_8);
	}
	
}

//為LED2的亮狀態(tài)
void LED2_GPIOD_ON(void)
{
	GPIO_ResetBits(GPIOD, GPIO_Pin_2);
}

//為LED8的滅狀態(tài)
void LED2_GPIOD_OFF(void)
{
	GPIO_SetBits(GPIOD, GPIO_Pin_2);
}

//利用按鍵進行電平反轉(zhuǎn)控制LED亮滅
void LED2_Turn(void)
{
	//讀取外部電平的值
	if(GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_2)==0)
	{
		GPIO_SetBits(GPIOD, GPIO_Pin_2);
	}
	else
	{
		GPIO_ResetBits(GPIOD, GPIO_Pin_2);
	}
	
}

3.按鍵

(1)按鍵初始化

(2)如果按鍵按下做什么(這里是控制LED)

#include "stm32f10x.h"                  // Device header
#include "Delay.h"  

void Key_Init(void)
{
    //打開RCC
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
    //配置GPIO三種模式
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;//注意按鍵是輸入給CPU信號的,所以是使用上拉輸入或者是下拉輸入,具體看電路情況
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_15;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStruct);//KEY_1  keyNumber=1;
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStruct);//KEY_0  keyNumber=3;
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStruct);//WK_UP  keyNumber=2;
}

uint8_t GetKeynum(void)
{
    uint8_t keyNumber=0; 
    //如果這個輸入的信號為0,則代表按下,為低電平
    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)==0)
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)==0)
		{
			Delay_ms(20);
		}
		keyNumber=1;
	}

    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==1)
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)==1)
		{
			Delay_ms(20);
		}
		keyNumber=2;
	}
	
	if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)==0)
	{
		Delay_ms(20);
		while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)==0)
		{
			Delay_ms(20);
		}
		keyNumber=3;
	}
	return keyNumber;
}

4,主函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-522717.html

uint8_t Key;
int main(void)
{
	LED_Init();
	Key_Init();
	while(1)
	{
		Key=GetKeynum();
		if(Key==1) //KEY_1  keyNumber=1;
		{
			LED8_Turn();


		}
		if(Key==2)//WK_UP  keyNumber=2;
		{
			LED2_Turn();
		}
		if(Key==3)//KEY_0  keyNumber=3;
		{
			while(1)
			{
				LED8_GPIOA_ON();
				LED2_GPIOD_ON();
				Delay_ms(100);
				LED8_GPIOA_OFF();
				LED2_GPIOD_OFF();
				Delay_ms(100);
			}
		}
	}
}

到了這里,關(guān)于STM32按鍵控制LED的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【STM32】按鍵控制LED亮滅實驗——GPIO、LED、KEY、SYS

    【STM32】按鍵控制LED亮滅實驗——GPIO、LED、KEY、SYS

    無鎖存時:當按下獨立按鈕時LED亮,松開LED滅。 鎖存時:當按下獨立按鈕時LED亮,松開LED仍亮,再按下獨立按鈕時LED熄滅。 硬件部分 軟件部分 1、引入頭文件 2、主函數(shù) 首先時鐘、led、按鍵初始化 鎖存時:當按下獨立按鈕時LED亮,松開LED仍亮,再按下獨立按鈕時LED熄滅。常

    2024年02月08日
    瀏覽(35)
  • STM32G030C8T6:使用按鍵控制LED亮滅(外部中斷)

    STM32G030C8T6:使用按鍵控制LED亮滅(外部中斷)

    本專欄記錄STM32開發(fā)各個功能的詳細過程,方便自己后續(xù)查看,當然也供正在入門STM32單片機的兄弟們參考; 本小節(jié)的目標是,系統(tǒng)主頻64 MHZ,采用高速外部晶振,通過KEY1 按鍵的PA0 引腳配置成中斷輸入引腳,PB9引腳配置成輸出,每次按鍵,PA0 引腳就會進入一次外部中斷,每進

    2024年02月05日
    瀏覽(26)
  • FPGA通過一個按鍵控制三個LED燈亮滅(狀態(tài)機法)

    FPGA通過一個按鍵控制三個LED燈亮滅(狀態(tài)機法)

    FPGA型號:Cyclone IV EPFCE10F17C8? ? 開發(fā)工具:Quartus13.0專業(yè)版? Modelsim 10.1d 文章目錄 狀態(tài)機 一、設(shè)計思路 二、代碼設(shè)計 1.頂層代碼 2.測試代碼 三、仿真 狀態(tài)機由狀態(tài)寄存器和組合邏輯電路構(gòu)成,能夠根據(jù)控制信號按照預(yù)先設(shè)定的狀態(tài)進行狀態(tài)轉(zhuǎn)移,是協(xié)調(diào)相關(guān)信號動作、完成

    2024年02月02日
    瀏覽(24)
  • 畢業(yè)設(shè)計 基于51單片機的手機藍牙控制8位LED燈亮滅設(shè)計

    畢業(yè)設(shè)計 基于51單片機的手機藍牙控制8位LED燈亮滅設(shè)計

    選題之前,同學們要弄明白一件事情,做畢業(yè)設(shè)計是干什么用的! 這里我告訴大家,畢業(yè)設(shè)計對于你來說,不是讓你去搞研究,掌握運用所學知識的,也不是讓你去比誰做的畢業(yè)設(shè)計多么牛逼,多么厲害。 說白點,它的作用就是一個,讓你順利畢業(yè),能夠拿到學位證,畢業(yè)

    2024年02月07日
    瀏覽(99)
  • STM32 按鍵控制的燈亮或滅

    STM32 按鍵控制的燈亮或滅

    目錄 1.STM32CubeMX的配置 2.輪詢模式下的控制(代碼) 3.上電燒錄摁下復位鍵,摁下按鍵1 ,亮紅燈,摁下按鍵2,亮綠燈,摁下按鍵3,亮藍燈 1.STM32CubeMX的配置 按原理圖去設(shè)置引腳狀態(tài) ?GPIO輸入模式讀取按鍵狀態(tài),輸出模式控制燈的狀態(tài) ?右鍵進行重命名按鍵分別為,KEY1,KEY

    2024年02月07日
    瀏覽(19)
  • HC-05藍牙模塊與STM32控制led燈亮詳解

    HC-05藍牙模塊與STM32控制led燈亮詳解

    HC-05模塊是一種基于藍牙協(xié)議的簡單無線通信設(shè)備,共有6個引腳,其中兩個引腳通過stm32的兩個含TX和RX的接口與之進行通信,一般用于無線控制,智能家居等。 VCC:用于供電 GND:用于供電 TX(發(fā)送):與單片機某一RX口進行通信 RX(接收):與單片機某一TX口進行通信 一句話

    2024年02月08日
    瀏覽(56)
  • 驅(qū)動控制STM32LED燈的兩秒,亮滅
  • 51單片機按鍵控制LED亮滅

    51單片機按鍵控制LED亮滅

    通過單片機按鍵控制LED亮滅與傳統(tǒng)電路的物理邏輯不同,在物理邏輯中開關(guān)控制電路的通斷來控制LED的亮滅,而通過單片機完成該項目至于要不斷地讀取按鍵所連接IO口的電平來判斷對LED連接的IO口輸出的電平即可。 原理圖如下: ?根據(jù)原理圖,我們可以發(fā)現(xiàn)按鍵按下時P2.1口

    2023年04月18日
    瀏覽(29)
  • 十、stm32-ESP8266(串口透傳、MCU透傳、控制LED亮滅)

    十、stm32-ESP8266(串口透傳、MCU透傳、控制LED亮滅)

    見博客:stm32f103c8t6新建固件庫模板(可自?。?固件庫模板 MDK5開發(fā)環(huán)境 stm32參考手冊 UART串口協(xié)議 stm32中斷概念 ESP8266模塊資料 利用固件庫模板點燈工程(下面第三行,手動狗頭) CH340 USB→TTL模塊 ESP8266模塊 手機軟件 實驗程序已經(jīng)發(fā)布到百度網(wǎng)盤,本文末有鏈接可以自取

    2023年04月19日
    瀏覽(26)
  • STM32按鍵控制LED

    1.利用模塊化編程對LED 2.設(shè)置LED的幾種狀態(tài)(亮,滅,和利用按鍵反轉(zhuǎn)電平) 3.按鍵 (1)按鍵初始化 (2)如果按鍵按下做什么(這里是控制LED) 4,主函數(shù)

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包