您尚未登录。

楼主 #1 2020-01-10 09:50:41

wenfengtou
会员
注册时间: 2019-12-28
已发帖子: 25
积分: 25

求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

想问下大家在驱动端是怎么操作GPIO的(不是直接在用户空间操作sys/class的方法),例如让特定GPIO输出高低电平。在dts里面看到大多数是使用
pinctrl的方法,例如spi,串口等,但是貌似都没有让gpio设置高低电平的方法,不知道要怎么配置dts才能完成高低电平的配置。

spi0_pins_a: spi0-pins-pc {
	pins = "PC0", "PC1", "PC2", "PC3";
	function = "spi0";
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins_a>;
	status = "okay";
	flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "winbond,xt25f128b", "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <50000000>;
	  };

};

或者说有什么推荐的操作GPIO的方法或者资料网站?诚意求教,因为看到网上很多都是其他平台的或者太久了,对于新手来说无法操作,所以才来求助的。

离线

#2 2020-01-10 10:08:58

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,245
积分: 9197

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

#include <linux/gpio.h>

//PG0 = 6*32+0 = 192

gpio_direction_output(192, 0); //设置为输出状态, 默认输出低电平

gpio_set_value(192, 1); //高电平

gpio_set_value(192, 0); //低电平





离线

楼主 #3 2020-01-10 10:37:38

wenfengtou
会员
注册时间: 2019-12-28
已发帖子: 25
积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

感谢晕哥,请问PG0 =  6*32+0 = 192 是怎么来的?是每个GPIO组默认都是32个吗,例如PA0 = 1, PB0 = 32?跟datasheet里面的pin num是同一个东西吗,为什么貌似对不上呢?
gpio.jpg

离线

楼主 #4 2020-01-10 10:47:57

wenfengtou
会员
注册时间: 2019-12-28
已发帖子: 25
积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

找到v3s的一个类似的贴子, https://whycan.cn/t_1853.html ,GPIO号跟Nano是一样的吗?

离线

#5 2020-01-10 11:12:14

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,245
积分: 9197

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

不用管引脚是否引出, 就按这个公式就行, 因为 soc和driver就是这么设计的:

A = 0
B = 1
C = 2
D = 3
E = 4
F = 5
G = 6

PG6 = 6 * 32 + 6 = 198


PINNUM 应该指的是引脚吧?





离线

楼主 #6 2020-01-10 12:21:13

wenfengtou
会员
注册时间: 2019-12-28
已发帖子: 25
积分: 25

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

感谢晕哥指点迷津!

离线

#7 2020-01-24 11:28:16

joyhope
会员
注册时间: 2020-01-16
已发帖子: 39
积分: 39

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

2# 方法很简洁。学习了。

离线

#8 2023-10-13 16:50:16

执白
会员
注册时间: 2023-10-05
已发帖子: 1
积分: 1

Re: 求教荔枝派nano的F1C100s的GPIO在驱动端一般的操作方法

晕哥 说:

#include <linux/gpio.h>

//PG0 = 6*32+0 = 192

gpio_direction_output(192, 0); //设置为输出状态, 默认输出低电平

gpio_set_value(192, 1); //高电平

gpio_set_value(192, 0); //低电平

大佬,使用该接口对应的引脚没有输出对应的电平如何解决

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn