chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

基于STM32F407庫函數(shù)開發(fā)按鍵控制LED燈

CHANBAEK ? 來源:小浩筆記 ? 作者:一紙HH ? 2023-05-19 15:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

按鍵控制燈的亮與滅的效果圖:

圖片

一、寄存器開發(fā)與庫函數(shù)開發(fā)的優(yōu)缺點

1、寄存器開發(fā)

缺點:

(1)開發(fā)難度大,查閱相關(guān)手冊比較多

(2)開發(fā)效率相對低,產(chǎn)品周期長

(3)可維護性較差

(4)可移植性、閱讀性差

優(yōu)點:

運行效率高。

2、庫函數(shù)開發(fā)

優(yōu)點:

(1)開發(fā)難度小,有庫函數(shù)封裝,即可實現(xiàn)功能

(2)開發(fā)效率高,產(chǎn)品周期短

(3)可維護性高

(4)可移植性、閱讀性強

缺點:

運行效率相對寄存器低一些。

STM32庫函數(shù)實際是ST公司對寄存器開發(fā)封裝。

二、LED庫函數(shù)開發(fā)

LED庫開發(fā)要添加庫文件:stm32f4xx_gpio.c

(1)原理圖可參看上篇文章:入門篇 | STM32F407寄存器開發(fā)--點燈

(2)打開GPIOF組時鐘,也叫做使能F組時鐘(STM32當(dāng)中外設(shè)的時鐘不打開,降低功耗)

(3)設(shè)置GPIOF9 引腳為輸出模式 輸出推挽 上拉 速度

/*
引腳說明:
LED0連接在PF9引腳
PF9輸出VCC(1),燈滅
PF9輸出GND(0),燈亮
*/

void Led_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;
  
  //使能GPIO F組時鐘,
  //RCC_AHB1ENR |= (0x01<<5);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
  
  
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9; //引腳9
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //輸出模式
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //推挽
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //快速
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉
  GPIO_Init(GPIOF, &GPIO_InitStruct);

}

(4)通過置位或者復(fù)位函數(shù)控制引腳電平來點燈

GPIO_SetBits( ) :置位(1GPIO_ResetBits( )復(fù)位(0
int main(void)
{
  //LED燈初始化
  Led_Init();
  
  while(1)
  {
    GPIO_SetBits(GPIOF,GPIO_Pin_9); //PF9置1 燈滅
    delayms(1000);
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);//PF9置0 燈亮
    delayms(1000);
  }
  return 0;
}

是不是比起寄存器點燈方便多啦!??!

二、按鍵庫函數(shù)開發(fā)

按鍵庫開發(fā)要添加庫文件:stm32f4xx_gpio.c

(1)理解按鍵輸入原理圖

按鍵S1連接PA0,

當(dāng)按鍵S1按下時,PA0為低電平

當(dāng)按鍵S1未按下時,PA0為高電平

圖片

補充:由于機械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。抖動時間的長短由按鍵的機械特性決定,一般為5ms~10ms。我們延時消抖即可

(2)打開GPIOA組時鐘,也叫做使能A組時鐘(STM32當(dāng)中外設(shè)的時鐘不打開,降低功耗。

(3)設(shè)置GPIOA0 引腳為模式 上拉

/*
引腳說明:
KEY0(S1) -- PA0
*/
void Key_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIO A組時鐘,
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; //引腳0
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //輸入模式
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉
  GPIO_Init(GPIOA, &GPIO_InitStruct);
}

(4)通過函數(shù)獲取引腳電平(主函數(shù)使用此函數(shù))

GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)

結(jié)合上面led庫函數(shù)點燈來實現(xiàn)按鍵控制燈的亮與滅

int main(void)
{
  //LED燈初始化
  Led_Init();
  Key_Init();
    
  while(1)
  {
    
    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_RESET)//判斷是否按下
    {
      delayms(15); //延時消抖
      
      if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)//判斷是否按下
      {
        while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0);//按鍵按下
        GPIO_ToggleBits(GPIOF, GPIO_Pin_9);//引腳狀態(tài)變更
      }
    }
  
  }
  return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6074

    文章

    45454

    瀏覽量

    667091
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1605

    瀏覽量

    111476
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5601

    瀏覽量

    129574
  • STM32
    +關(guān)注

    關(guān)注

    2307

    文章

    11150

    瀏覽量

    372410
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    189

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    STM32F407 外部中斷配置步驟

    介紹STM32F407外部中斷配置步驟,以按鍵為例,實現(xiàn)外部中斷配置,使用按鍵觸發(fā)中斷進行LED控制
    的頭像 發(fā)表于 07-06 14:31 ?3419次閱讀
    <b class='flag-5'>STM32F407</b> 外部中斷配置步驟

    使用HAL庫函數(shù)外部中斷功能實現(xiàn)按鍵控制LED

    STM32開發(fā),使用HAL庫函數(shù)外部中斷功能實現(xiàn)按鍵控制LED1 概述1.1 資源概述1.2引
    發(fā)表于 08-13 09:16

    利用按鍵控制LED的亮滅

    STM32F4工程--IO口--按鍵控制點燈程序(庫函數(shù)) ----芯片:STM32F429IGT6本文章介紹使用STM32F4單片機,利用
    發(fā)表于 08-24 07:18

    如何使用HAL庫函數(shù)實現(xiàn)按鍵控制LED

    如何使用HAL庫函數(shù)實現(xiàn)按鍵控制LED?
    發(fā)表于 11-16 06:25

    請問STM32F407VET6怎么實現(xiàn)按鍵控制LED狀態(tài)?

    請問STM32F407VET6怎么實現(xiàn)按鍵控制LED狀態(tài)?
    發(fā)表于 11-18 06:10

    如何使用庫函數(shù)的方法用按鍵控制一個LED的取反?

    如何使用庫函數(shù)的方法用按鍵控制一個LED的取反?
    發(fā)表于 11-25 08:52

    怎樣通過庫函數(shù)操作stm32f407上的按鍵LED以及蜂鳴器的控制

    如何對LED進行初始化配置呢?怎樣通過庫函數(shù)操作stm32f407上的按鍵LED以及蜂鳴器
    發(fā)表于 01-26 07:33

    STM32F407 UCOS III實驗

    STM32F407 UCOS III實驗,介紹基于STM32F407的UCOSIII實例,參考下
    發(fā)表于 09-22 14:08 ?82次下載

    STM32F407 開發(fā)板原理圖

    STM32F407 開發(fā)板原理圖
    發(fā)表于 09-22 16:12 ?393次下載
    <b class='flag-5'>STM32F407</b> <b class='flag-5'>開發(fā)</b>板原理圖

    STM32F4工程--IO口--按鍵控制點燈程序

    STM32F4工程--IO口--按鍵控制點燈程序(庫函數(shù)) ----芯片:STM32F429IGT6本文章介紹使用STM32F4單片機,利用
    發(fā)表于 11-29 14:06 ?13次下載
    <b class='flag-5'>STM32F</b>4工程--IO口--<b class='flag-5'>按鍵控制</b>點燈程序

    STM32F407通過按鍵控制LED和蜂鳴器

    學(xué)習(xí)STM32F4的基本知識,掌握I/O口的基本操作,了解MDK開發(fā)環(huán)境使用方法之后,通過學(xué)習(xí)LED,BEEP,KEY基本模塊的應(yīng)用實例,最終設(shè)計出通過按鍵控制
    發(fā)表于 11-29 15:51 ?31次下載
    <b class='flag-5'>STM32F407</b>通過<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b>和蜂鳴器

    STM32F407學(xué)習(xí)記錄---按鍵檢測實驗

    stm32f407上的按鍵實現(xiàn)控制LED以及蜂鳴器,實現(xiàn)的功能如下:KEY0鍵控制
    發(fā)表于 12-01 18:06 ?14次下載
    <b class='flag-5'>STM32F407</b>學(xué)習(xí)記錄---<b class='flag-5'>按鍵</b>檢測實驗

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應(yīng)用之按鍵FIFO

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應(yīng)用之按鍵FIFO
    發(fā)表于 12-05 15:21 ?40次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)</b>板用戶手冊】第19章 <b class='flag-5'>STM32F407</b>的GPIO應(yīng)用之<b class='flag-5'>按鍵</b>FIFO

    STM32】基于STM32F407寄存器方式點亮LED流水燈

    目錄一、通過寄存器方式點亮1.二、通過庫函數(shù)方式點亮三級目錄本文使用原子STM32F407最小系統(tǒng)板示例核心芯片為:STM32F407ZGT6一、通過寄存器方式點亮1.二、通過庫函數(shù)
    發(fā)表于 12-08 17:51 ?13次下載
    【<b class='flag-5'>STM32</b>】基于<b class='flag-5'>STM32F407</b>寄存器方式點亮<b class='flag-5'>LED</b>流水燈

    stm32按鍵控制led亮滅

    stm32按鍵控制led亮滅? 在嵌入式系統(tǒng)中,硬件按鍵常常被用作開關(guān)輸入,控制
    的頭像 發(fā)表于 09-02 17:05 ?1.4w次閱讀