当前位置:   article > 正文

树莓派3B 之GPIO口_树莓派3b+ gpio

树莓派3b+ gpio

这一篇我们主要讲树莓派的GPIO口控制。

还是用了wirningPi这个库。

我们用了6个Pin脚来模拟按键。

wirningPi的24-29脚。(因为之后我们会模拟选择,确认,上下左右)

GPIO.cpp:

  1. #include "bsp_key.h"
  2. //设置GPIO口模式
  3. void Key_StatusSet(void)
  4. {
  5. //初始化库
  6. wiringPiSetup();
  7. //设置输入模式
  8. pinMode(SW5_OPTION, INPUT);
  9. pinMode(SW2_OK, INPUT);
  10. pinMode(SW6_UP, INPUT);
  11. pinMode(SW4_LEFT, INPUT);
  12. pinMode(SW1_DOWN, INPUT);
  13. pinMode(SW3_RIGHT, INPUT);
  14. //设置上拉模式
  15. pullUpDnControl(SW5_OPTION, PUD_UP); // pull up
  16. pullUpDnControl(SW2_OK, PUD_UP);
  17. pullUpDnControl(SW6_UP, PUD_UP);
  18. pullUpDnControl(SW4_LEFT, PUD_UP);
  19. pullUpDnControl(SW1_DOWN, PUD_UP);
  20. pullUpDnControl(SW3_RIGHT, PUD_UP);
  21. }
  22. //检查按钮是否被按下
  23. int Key_PressCheck(int key_num)
  24. {
  25. if(digitalRead(key_num) == 0) // Press
  26. {
  27. delay(200); //delay for debounce
  28. while(digitalRead(key_num) == 0);
  29. return 1;
  30. }
  31. else
  32. return 0;
  33. }
  34. //----------------------test-----------------------------
  35. int key1 = 0,key2 = 0,key3 = 0,key4 = 0;
  36. void test(void)
  37. {
  38. if(Key_PressCheck(SW5_OPTION) == 1)
  39. key1++;
  40. else if(Key_PressCheck(SW3_RIGHT) == 1)
  41. key2++;
  42. else if(Key_PressCheck(SW4_LEFT) == 1)
  43. key3++;
  44. else if(Key_PressCheck(SW2_OK) == 1)
  45. key4++;
  46. else
  47. printf("None Key Press!!!\n");
  48. printf("key1 = %d ,key2 = %d ,key3 = %d ,key4 = %d \n",key1,key2,key3,key4);
  49. }
  50. //-----------------------------------------------------

 

GPIO.h

  1. #ifndef BSP_KEY_H
  2. #define BSP_KEY_H
  3. #include <stdio.h>
  4. #include <wiringPi.h>
  5. //
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/673950
推荐阅读
相关标签
  

闽ICP备14008679号