找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1669|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

求助大佬,怎么利用一個(gè)按鈕來控制led點(diǎn)一下長(zhǎng)亮點(diǎn)一下長(zhǎng)滅

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我的這個(gè)程序有問題嗎?

屏幕截圖 2024-11-26 142338.png (25.4 KB, 下載次數(shù): 0)

屏幕截圖 2024-11-26 142338.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

11#
ID:916493 發(fā)表于 2024-12-13 13:32 | 只看該作者
發(fā)表于 2024-11-28 15:33
哈哈哈,小白一個(gè),
  1. u8 flag1 = 0;
  2. void key1_control (void)
  3. {
  4.         if (GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_0) != 0)
  5.         {
  6.                 delay_ms (10);
  7.                 if (GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_0) != 0)
  8.                 {
  9.                         while (GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_0) != 0) {}
  10.                         flag1++;
  11.                 }
  12.         }
  13.         if (flag1 % 2 == 1)
  14.                 GPIO_ResetBits (GPIOE, GPIO_Pin_2 | GPIO_Pin_3) ;
  15.         else
  16.                 GPIO_SetBits (GPIOE, GPIO_Pin_2 | GPIO_Pin_3);
  17. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

10#
ID:1137686 發(fā)表于 2024-11-28 15:33 | 只看該作者
會(huì)飛的魚KKK 發(fā)表于 2024-11-28 11:21
按按鍵的時(shí)間和HAL_Delay(150),最好延時(shí)時(shí)間大于按鍵時(shí)間,讓按一次只進(jìn)入一次A11接地判定,還有A10一般做 ...

哈哈哈,小白一個(gè),老師上課都沒講什么直接就讓我們寫了
回復(fù)

使用道具 舉報(bào)

9#
ID:1091344 發(fā)表于 2024-11-28 11:25 | 只看該作者
在第一個(gè)if里面加延時(shí),保證按一次按鍵只執(zhí)行第一個(gè)一次if
回復(fù)

使用道具 舉報(bào)

8#
ID:1091344 發(fā)表于 2024-11-28 11:21 | 只看該作者
按按鍵的時(shí)間和HAL_Delay(150),最好延時(shí)時(shí)間大于按鍵時(shí)間,讓按一次只進(jìn)入一次A11接地判定,還有A10一般做串口用,點(diǎn)燈有點(diǎn)大材小用了
回復(fù)

使用道具 舉報(bào)

7#
ID:583948 發(fā)表于 2024-11-28 10:17 | 只看該作者
本帖最后由 zpwgf 于 2024-11-28 10:21 編輯

HAL_GPIO_TogglePin使用這個(gè)函數(shù)就方便撒。比如:
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11) == 0)
    {
        HAL_Delay(10);
        if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11) == 0)
        {
            HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_10);
        }
    }
沒錯(cuò)的話應(yīng)該這樣也可以。當(dāng)然,這樣不松手的話理論上會(huì)一直來回跳
回復(fù)

使用道具 舉報(bào)

6#
ID:23640 發(fā)表于 2024-11-27 09:44 | 只看該作者
判斷按鍵里面加個(gè)延時(shí)再判斷一次就實(shí)現(xiàn)你的功能了,你目前的程序因?yàn)闆]有延時(shí),單片機(jī)跑太快按鍵可能會(huì)亂變燈
回復(fù)

使用道具 舉報(bào)

5#
ID:161164 發(fā)表于 2024-11-26 23:21 | 只看該作者
有問題
沒消抖
沒松手檢測(cè)
回復(fù)

使用道具 舉報(bào)

地板
ID:1137686 發(fā)表于 2024-11-26 21:47 | 只看該作者
tianxiazone 發(fā)表于 2024-11-26 21:44
第100行 寫錯(cuò)了吧 ,這個(gè)邏輯有有點(diǎn)問題,  按鍵可以用中斷

就是我這個(gè)按鍵接的地,所以按下去讀取的應(yīng)該是0,所以用的reset,這個(gè)中斷是什么意思啊,請(qǐng)教一下,我們老師上可就講了這幾個(gè)函數(shù)》
回復(fù)

使用道具 舉報(bào)

板凳
ID:498757 發(fā)表于 2024-11-26 21:44 | 只看該作者
第100行 寫錯(cuò)了吧 ,這個(gè)邏輯有有點(diǎn)問題,  按鍵可以用中斷
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:276663 發(fā)表于 2024-11-26 21:14 | 只看該作者
  1. int main(void)
  2. {
  3.         u8 flag;

  4.         while(1)
  5.         {
  6.                 if(key==0)
  7.                 {
  8.                         if(flag)
  9.                         {
  10.                                 led=0;//滅
  11.                                 flag=0;
  12.                         }else
  13.                         {
  14.                                 led=1;//亮
  15.                                 flag=1;
  16.                         }
  17.                         while(key==0);
  18.                 }
  19.         }
  20. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表