哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32按鍵控制led燈亮滅

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-09-02 17:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

stm32按鍵控制led燈亮滅

嵌入式系統(tǒng)中,硬件按鍵常常被用作開關(guān)輸入,控制LED燈亮滅。在STM32系列單片機中,有多種方式實現(xiàn)按鍵控制LED燈亮滅,我們將介紹其中一種較為簡單的方法。

一、STM32開發(fā)環(huán)境搭建

1. 軟件環(huán)境搭建

首先,需要在計算機中下載安裝Keil MDK開發(fā)環(huán)境,以實現(xiàn)對STM32單片機的編寫、編譯、燒錄等操作。同時,還需要下載對應(yīng)的STM32CubeMX軟件,用于生成代碼、初始化硬件等操作。

2. 硬件環(huán)境搭建

將STM32單片機與相應(yīng)的按鍵和LED燈連接。本實驗使用的STM32是STM32F103C8T6,按鍵使用的是按鈕開關(guān),LED燈使用的是紅色和藍(lán)色通用的LED燈。

二、STM32按鍵控制LED燈亮滅實驗步驟

1. 打開STM32CubeMX軟件,點擊File -> New Project,選擇STM32F103C8T6作為目標(biāo)設(shè)備,單擊OK。

2. 在生成的新項目中,選擇Pinout標(biāo)簽頁,將按鍵和LED燈連接至對應(yīng)的引腳上。

3. 選擇Configuration標(biāo)簽頁,配置GPIO引腳的工作模式。按鍵連接的GPIO引腳應(yīng)配置為輸入模式,LED燈連接的GPIO引腳應(yīng)配置為輸出模式。

4. 在Project Manager視圖中,選擇Project Manager -> Code Generator標(biāo)簽頁,選擇Generate peripheral initialisation as a pair of .c/.h files選項,并確保選中了Generate under Root選項。

5. 點擊Generate Code,生成HAL庫文件。

6. 打開Keil MDK開發(fā)環(huán)境,從文件菜單中選擇New Project,創(chuàng)建新的工程。在選擇設(shè)備的窗口中選擇STM32F103C8T6,確定后添加HAL庫文件到工程。

7. 編寫C語言程序,實現(xiàn)按鍵控制LED燈亮滅。程序中需要實現(xiàn)如下功能:

a. 初始化按鍵和LED燈的GPIO引腳。

b. 判斷按鍵當(dāng)前狀態(tài),如果按鍵處于按下狀態(tài),則將LED燈的GPIO引腳置高,使LED燈亮;否則,將LED燈的GPIO引腳置低,使LED燈滅。

下面是具體的C語言程序示例:

```
#include "stm32f1xx_hal.h"

/* 定義按鍵GPIO引腳 */
#define KEY_PORT GPIOB
#define KEY_PIN GPIO_PIN_0

/* 定義LED燈GPIO引腳 */
#define LED_PORT GPIOB
#define LED_PIN GPIO_PIN_1

/* 定義按鍵狀態(tài)標(biāo)志 */
uint8_t key_flag = 0;

/* 定義HAL庫句柄 */
GPIO_InitTypeDef GPIO_InitStruct;
TIM_HandleTypeDef htim2;

/* 初始化STM32的GPIO引腳 */
void GPIO_Init(void)
{
/* 使能GPIOB時鐘 */
__HAL_RCC_GPIOB_CLK_ENABLE();

/* 初始化按鍵GPIO引腳 */
GPIO_InitStruct.Pin = KEY_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(KEY_PORT, &GPIO_InitStruct);

/* 初始化LED燈GPIO引腳 */
GPIO_InitStruct.Pin = LED_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
}

/* 初始化STM32的定時器,以便在檢測按鍵時切換狀態(tài) */
void TIM2_Init(void)
{
/* 使能TIM2時鐘 */
__HAL_RCC_TIM2_CLK_ENABLE();

/* 初始化定時器中斷 */
HAL_NVIC_SetPriority(TIM2_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn);

/* 初始化定時器2 */
htim2.Instance = TIM2;
htim2.Init.Prescaler = 7200-1; /* 分頻系數(shù) */
htim2.Init.Period = 500-1; /* 計數(shù)周期 */
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
HAL_TIM_Base_Init(&htim2);
HAL_TIM_Base_Start_IT(&htim2);
}

/* 檢測按鍵狀態(tài) */
void Key_Scan(void)
{
/* 判斷按鍵是否按下 */
if (HAL_GPIO_ReadPin(KEY_PORT, KEY_PIN) == GPIO_PIN_RESET) {
key_flag = 1;
} else {
key_flag = 0;
}
}

/* 控制LED燈亮滅 */
void LED_Control(void)
{
/* 根據(jù)按鍵狀態(tài)判斷LED燈的亮滅狀態(tài) */
if (key_flag == 1) {
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);
} else {
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET);
}
}

/* 定時器調(diào)用函數(shù),每500ms檢測一次按鍵狀態(tài) */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim == &htim2) {
Key_Scan();
LED_Control();
}
}

int main(void)
{
/* 初始化GPIO引腳 */
HAL_Init();
GPIO_Init();

/* 初始化定時器 */
TIM2_Init();

/* 等待事件發(fā)生 */
while (1) {
}

return 0;
}
```

三、STM32按鍵控制LED燈亮滅的運行效果

編寫完成上述程序之后,將程序燒錄到STM32單片機中。當(dāng)按下按鍵時,LED燈將亮起,否則LED燈將熄滅

四、總結(jié)

本實驗簡單介紹了STM32按鍵控制LED燈亮滅的原理和步驟。在實現(xiàn)過程中,需要注意初始化硬件的GPIO引腳的工作模式,以及編寫程序中對按鍵狀態(tài)的判斷和LED燈狀態(tài)的控制??梢酝ㄟ^添加定時器中斷等方式,實現(xiàn)對按鍵狀態(tài)的周期性檢測和LED燈的閃爍效果等功能,并根據(jù)具體的應(yīng)用場景來定制相應(yīng)的程序功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1606

    瀏覽量

    112070
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11188

    瀏覽量

    374469
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7645

    瀏覽量

    146085
  • 按鍵控制
    +關(guān)注

    關(guān)注

    1

    文章

    44

    瀏覽量

    9156
  • HAL庫
    +關(guān)注

    關(guān)注

    1

    文章

    121

    瀏覽量

    7731
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    IP5127_datasheet_cn V1帶充放電管理的輕觸三功能LED驅(qū)動芯片

    輸出功率MOS,阻抗35mQ,能支持最大持續(xù)電流1.0A,可驅(qū)動單顆LED實現(xiàn)全、25%、暴閃和循環(huán)的輕觸三功能切換控制,并可通過長按
    發(fā)表于 02-06 17:29 ?0次下載

    【瑞薩FPB-RA6E2試用】GPIO-按鍵控制LED及設(shè)備樹理解

    GPIO-按鍵控制LED及設(shè)備樹理解 0、視頻教程 https://www.bilibili.com/video/BV1tximBqE
    發(fā)表于 01-13 14:44

    【瑞薩RA × Zephyr評測】LED、按鍵和UART

    實現(xiàn)在Zephyr操作系統(tǒng)下按鍵控制 LED 的開關(guān)狀態(tài),并通過 UART 輸出按鍵事件日志,驗證 GPIO 和串口通信功能。
    的頭像 發(fā)表于 01-10 10:21 ?2573次閱讀
    【瑞薩RA × Zephyr評測】<b class='flag-5'>LED</b>、<b class='flag-5'>按鍵</b>和UART

    【瑞薩FPB-RA6E2試用】【瑞薩RA × Zephyr開發(fā)板評測】+以按鍵控制LED

    5所示。 圖4 配置按鍵引腳 圖5 配置LED引腳 隨后,點擊生成項目工程即可。 為簡化其它處理,可采用生成KEIL項目工程的方式,然后進(jìn)入KEIL中進(jìn)行設(shè)計。 實現(xiàn)按鍵控制LED
    發(fā)表于 01-05 17:04

    (原理圖) 微網(wǎng)霧化器電路設(shè)計 - 自動掃頻追頻+檢水

    循環(huán),高-中-低檔位控制霧化速率 檔位關(guān)機記憶 按鍵2: 在開機狀態(tài)按下出霧,釋放后立即停止出霧 在開機狀態(tài)下3分鐘內(nèi),按鍵1和按鍵2無動作的話,自動關(guān)機
    發(fā)表于 12-23 17:09

    基于PWM的LED調(diào)光技術(shù)與呼吸實現(xiàn)方法!

    利用PWM技術(shù)控制LED亮度,不僅效率高、響應(yīng)快,還能實現(xiàn)細(xì)膩的視覺過渡。系統(tǒng)介紹PWM的工作機制,結(jié)合具體硬件平臺,展示如何編程實現(xiàn)LED的漸
    的頭像 發(fā)表于 12-15 13:03 ?622次閱讀
    基于PWM的<b class='flag-5'>LED</b>調(diào)光技術(shù)與呼吸<b class='flag-5'>燈</b>實現(xiàn)方法!

    LED觸摸控制PCBA方案開發(fā) | 控觸摸方案開發(fā)

    單鍵LED觸摸控制PCBA方案開發(fā)控觸摸方案開發(fā)PCBA方案控方案支持定制尋找靈活、可靠的LED燈光
    的頭像 發(fā)表于 12-10 17:43 ?487次閱讀
    <b class='flag-5'>LED</b>觸摸<b class='flag-5'>控制</b>PCBA方案開發(fā) | <b class='flag-5'>燈</b>控觸摸方案開發(fā)

    飛凌嵌入式OK3506-S12 Mini開發(fā)板產(chǎn)品點亮LED

    開發(fā)板資料包中的相關(guān)程序,部分代碼截圖如下: 5、控制LED顯示 查看觸發(fā)條件,當(dāng) LED觸發(fā)條件設(shè)置為 none 時,用戶可通過命令來控制
    發(fā)表于 12-10 10:04

    IO設(shè)置為輸出點亮LED, 沒有操作時led是怎么回事?

    IO設(shè)置為輸出點亮LED, 沒有操作時 LED 一 怎么回事
    發(fā)表于 12-05 08:14

    【瑞薩RA6E2】 配置Keil開發(fā)環(huán)境+使用按鍵控制LED+串口/調(diào)試器燒錄程序

    一、 概述 本報告旨在記錄基于瑞薩RA6E2 MCU評估板的初步開發(fā)體驗。主要內(nèi)容包括: 軟件開發(fā)環(huán)境的搭建與配置。 實現(xiàn)一個基礎(chǔ)的GPIO控制功能:通過用戶按鍵控制LED
    發(fā)表于 11-26 20:53

    【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+LED閃爍效果及按鍵控制

    過程見圖2所示。 圖2 觸摸檢測 將狀態(tài)檢測值保存到變量的方法如圖3所示。 圖3 狀態(tài)存儲 以按鍵控制LED的腳本程序如下: 經(jīng)腳本程序的運行,其效果如圖4和圖5所示。 圖4 點亮LED 圖5 熄滅
    發(fā)表于 10-30 14:38

    【RA4M2-SENSOR】+按鍵控制LED

    RA4M2-SENSOR開發(fā)板配有LED按鍵,利用它可進(jìn)行GPIO口的輸入輸出測試,其電路見圖1所示。 圖1LED按鍵電路 為實現(xiàn)以按鍵控制
    發(fā)表于 09-02 16:18

    ZX8002D LED觸摸調(diào)光集成芯片數(shù)據(jù)手冊

    ZX8002D臺燈按鍵三檔調(diào)光IC芯片,單鍵調(diào)光IC輸入電壓2.5-5V,三檔亮度調(diào)節(jié),一路串輸出,一個按鍵控制按鍵三檔亮度調(diào)節(jié)。多用于LED
    發(fā)表于 07-07 10:16 ?17次下載

    LED觸摸開關(guān)調(diào)光調(diào)色溫電源控制原理方案

    、三段調(diào)光 模式4、雙路輸出:無亮度記憶、LED1LED2-LED1
    發(fā)表于 05-07 09:37

    【RA-Eco-RA4M2開發(fā)板評測】點燈實現(xiàn)6種LED花式流水燈操作

    _0, COT_LED_OFF); // 設(shè)置 cotLed_SetState(LED_1, COT_LED_OFF); // 設(shè)置
    發(fā)表于 04-28 21:28
    二手房| 兴隆县| 班玛县| 大关县| 海口市| 天台县| 盘山县| 府谷县| 汝州市| 隆化县| 连州市| 阳曲县| 南部县| 金山区| 泸西县| 滁州市| 黄龙县| 漳平市| 个旧市| 濉溪县| 轮台县| 孙吴县| 宜良县| 迁安市| 林州市| 大英县| 北川| 新建县| 永仁县| 海伦市| 阳西县| 庆阳市| 左云县| 慈溪市| 钟祥市| 金阳县| 西盟| 曲沃县| 淮南市| 龙南县| 罗山县|