概述
在写使用spi过程中,需要用到GPIO3.21这个引脚的高电平输出信号。
在超级终端里面的输入方法:
# cd /sys/class/gpio
/sys/class/gpio# echo 117 >export
/sys/class/gpio# echo out >gpio117/direction
这个固然可以实现引脚电平的输出,在使用中,还可以用文件操作方式使得电平升高。如下:
#include stdlib.h
#include stdio.h
#include string.h
#include unistd.h
#include fcntl.h
//芯片复位引脚:GPIO3.21
#define SYSFS_GPIO_EXPORT "/sys/class/gpio/export"
#define SYSFS_GPIO_RST_PIN_VAL "117"
#define SYSFS_GPIO_RST_DIR "/sys/class/gpio/gpio117/direction"
#define SYSFS_GPIO_RST_DIR_VAL "OUT"
#define SYSFS_GPIO_RST_VAL "/sys/class/gpio/gpio117/value"
#define SYSFS_GPIO_RST_VAL_H "1"
#define SYSFS_GPIO_RST_VAL_L "0"
int main()
{
int fd;
//打开端口/sys/class/gpio# echo 117 > export
fd = open(SYSFS_GPIO_EXPORT, O_WRONLY);
if(fd == -1)
{
printf("ERR: Radio hard reset pin open error.n");
return EXIT_FAILURE;
}
write(fd, SYSFS_GPIO_RST_PIN_VAL ,sizeof(SYSFS_GPIO_RST_PIN_VAL));
close(fd);
//设置端口方向/sys/class/gpio/gpio117# echo out > direction
fd = open(SYSFS_GPIO_RST_DIR, O_WRONLY);
if(fd == -1)
{
printf("ERR: Radio hard reset pin direction open error.n");
return EXIT_FAILURE;
}
write(fd, SYSFS_GPIO_RST_DIR_VAL, sizeof(SYSFS_GPIO_RST_DIR_VAL));
close(fd);
fd = open(SYSFS_GPIO_RST_VAL, O_RDWR);
if(fd == -1)
{
printf("ERR: Radio hard reset pin value open error.n");
return EXIT_FAILURE;
}
//输出高电平
write(fd, SYSFS_GPIO_RST_VAL_H, sizeof(SYSFS_GPIO_RST_VAL_H));
while(1)
{
}
close(fd);
printf("INFO: Radio hard reset pin value open error.n");
return 0;
}
最后
以上就是高兴蜡烛为你收集整理的linux下用文件控制gpio的输出电平的全部内容,希望文章能够帮你解决linux下用文件控制gpio的输出电平所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复