写个GPIO边沿检测的C语言程序
时间: 2023-10-29 18:06:57 浏览: 187
用C语言代码实现GPIO通信协议
5星 · 资源好评率100%
以下是一个基于 C 语言的 GPIO 边沿检测程序,可以在 Raspberry Pi 上使用:
```c
#include <stdio.h>
#include <wiringPi.h>
#define GPIO_PIN 17
int main(void)
{
if (wiringPiSetup() == -1) {
printf("Failed to setup wiringPi.\n");
return -1;
}
pinMode(GPIO_PIN, INPUT);
int last_state = digitalRead(GPIO_PIN);
int curr_state;
while (1) {
curr_state = digitalRead(GPIO_PIN);
if (curr_state != last_state) {
printf("GPIO pin %d edge detected: %d -> %d\n", GPIO_PIN, last_state, curr_state);
last_state = curr_state;
}
}
return 0;
}
```
该程序使用了 WiringPi 库,需要先安装该库。程序中定义了一个 GPIO 引脚的编号,可以根据实际情况进行修改。在程序中,使用 `digitalRead` 函数读取 GPIO 输入引脚的状态,然后与上一次读取的状态进行比较,如果发生了变化,则表示检测到了边沿触发事件,输出相关信息。程序会一直循环执行,直到手动停止。
阅读全文