赞
踩
这一篇我们主要讲树莓派的GPIO口控制。
还是用了wirningPi这个库。
我们用了6个Pin脚来模拟按键。
wirningPi的24-29脚。(因为之后我们会模拟选择,确认,上下左右)
GPIO.cpp:
- #include "bsp_key.h"
-
- //设置GPIO口模式
- void Key_StatusSet(void)
- {
- //初始化库
- wiringPiSetup();
-
- //设置输入模式
- pinMode(SW5_OPTION, INPUT);
- pinMode(SW2_OK, INPUT);
- pinMode(SW6_UP, INPUT);
- pinMode(SW4_LEFT, INPUT);
- pinMode(SW1_DOWN, INPUT);
- pinMode(SW3_RIGHT, INPUT);
-
- //设置上拉模式
- pullUpDnControl(SW5_OPTION, PUD_UP); // pull up
- pullUpDnControl(SW2_OK, PUD_UP);
- pullUpDnControl(SW6_UP, PUD_UP);
- pullUpDnControl(SW4_LEFT, PUD_UP);
- pullUpDnControl(SW1_DOWN, PUD_UP);
- pullUpDnControl(SW3_RIGHT, PUD_UP);
- }
-
-
- //检查按钮是否被按下
- int Key_PressCheck(int key_num)
- {
- if(digitalRead(key_num) == 0) // Press
- {
- delay(200); //delay for debounce
- while(digitalRead(key_num) == 0);
- return 1;
- }
- else
- return 0;
- }
-
- //----------------------test-----------------------------
- int key1 = 0,key2 = 0,key3 = 0,key4 = 0;
- void test(void)
- {
-
-
- if(Key_PressCheck(SW5_OPTION) == 1)
- key1++;
- else if(Key_PressCheck(SW3_RIGHT) == 1)
- key2++;
- else if(Key_PressCheck(SW4_LEFT) == 1)
- key3++;
- else if(Key_PressCheck(SW2_OK) == 1)
- key4++;
- else
- printf("None Key Press!!!\n");
-
- printf("key1 = %d ,key2 = %d ,key3 = %d ,key4 = %d \n",key1,key2,key3,key4);
- }
- //-----------------------------------------------------
GPIO.h
- #ifndef BSP_KEY_H
- #define BSP_KEY_H
-
- #include <stdio.h>
- #include <wiringPi.h>
-
- //
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。