欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1835|回復: 10
打印 上一主題 下一主題
收起左側

求助大佬,怎么利用一個按鈕來控制led點一下長亮點一下長滅

[復制鏈接]
跳轉到指定樓層
樓主
我的這個程序有問題嗎?

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

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

使用道具 舉報

沙發
ID:276663 發表于 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. }
復制代碼
回復

使用道具 舉報

板凳
ID:498757 發表于 2024-11-26 21:44 | 只看該作者
第100行 寫錯了吧 ,這個邏輯有有點問題,  按鍵可以用中斷
回復

使用道具 舉報

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

就是我這個按鍵接的地,所以按下去讀取的應該是0,所以用的reset,這個中斷是什么意思啊,請教一下,我們老師上可就講了這幾個函數》
回復

使用道具 舉報

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

使用道具 舉報

6#
ID:23640 發表于 2024-11-27 09:44 | 只看該作者
判斷按鍵里面加個延時再判斷一次就實現你的功能了,你目前的程序因為沒有延時,單片機跑太快按鍵可能會亂變燈
回復

使用道具 舉報

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

HAL_GPIO_TogglePin使用這個函數就方便撒。比如:
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);
        }
    }
沒錯的話應該這樣也可以。當然,這樣不松手的話理論上會一直來回跳
回復

使用道具 舉報

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

使用道具 舉報

9#
ID:1091344 發表于 2024-11-28 11:25 | 只看該作者
在第一個if里面加延時,保證按一次按鍵只執行第一個一次if
回復

使用道具 舉報

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

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

使用道具 舉報

11#
ID:916493 發表于 2024-12-13 13:32 | 只看該作者
發表于 2024-11-28 15:33
哈哈哈,小白一個,
  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. }
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表