您尚未登录。

楼主 #1 2019-05-20 00:23:55

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 710

go语言开发f1c100s之点灯

用文件方式操作gpio,写了两种操作文件的方法,但是shell命令方式有点问题,os直接操作文件方式如下:

package main

import (
	"fmt"
	"os"
	"os/exec"
	"time"
)

const filename = "/sys/class/gpio/gpio131/value"

//调用shell写文件方式
func cmdRun(v byte) {
	command := "echo " + fmt.Sprintf("%d", v) + " > " + filename
	fmt.Println(command)
	cmd := exec.Command("/bin/sh", command)
	err := cmd.Run()
	if err != nil {
		fmt.Println(err)
	}
}

//os直接写文件方式
func osRun(v byte) {
	file, err := os.OpenFile(filename, os.O_WRONLY, 0666)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()

	_, err = file.WriteString(fmt.Sprintf("%d", v))
	if err != nil {
		fmt.Println(err)
	}
}

func pinSet(v byte) {
	// cmdRun(v)     暂时有问题,待调试
	osRun(v)
}

func main() {
	for {
		pinSet(1)
		time.Sleep(time.Second)
		pinSet(0)
		time.Sleep(time.Second)
	}
}

led.png

最近编辑记录 kekemuyu (2019-05-20 00:27:19)

离线

#2 2019-05-20 08:18:52

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: go语言开发f1c100s之点灯

emmmm, 不错, 感谢分享!





离线

#3 2019-05-20 21:10:59

dycbaba
会员
注册时间: 2019-03-27
已发帖子: 98
积分: 77.5

Re: go语言开发f1c100s之点灯

这也就能点灯吧,稍微复杂一点APP,内存就爆了吧

离线

楼主 #4 2019-05-21 03:34:27

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 710

Re: go语言开发f1c100s之点灯

dycbaba 说:

这也就能点灯吧,稍微复杂一点APP,内存就爆了吧

请移步至
https://whycan.cn/t_2474.html

离线

楼主 #5 2020-04-04 10:02:59

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 710

Re: go语言开发f1c100s之点灯

zero.licheepi文档中操作gpio的方法,放在这里备用
使用sysfs操作GPIO的例子:

#echo 192 > /sys/class/gpio/export  #导出 PG0, GREEN
#ls /sys/class/gpio/
export     gpio192    gpiochip0  unexport
#ls /sys/class/gpio/gpio192/
active_low direction subsystem/ value device/ power/ uevent
#echo "out" > /sys/class/gpio/gpio192/direction #设置为输出
#echo 0 > /sys/class/gpio/gpio192/value     #亮灯
#echo 1 > /sys/class/gpio/gpio192/value #灭灯
#echo "in" > /sys/class/gpio/gpio192/direction #设置为输入
#cat /sys/class/gpio/gpio192/value #读取电平
0

离线

#6 2021-04-04 23:59:09

mysteryli
会员
注册时间: 2020-03-05
已发帖子: 486
积分: 391
个人网站

Re: go语言开发f1c100s之点灯

为什么PG0 就是192?

kekemuyu 说:

zero.licheepi文档中操作gpio的方法,放在这里备用
使用sysfs操作GPIO的例子:

#echo 192 > /sys/class/gpio/export  #导出 PG0, GREEN
#ls /sys/class/gpio/
export     gpio192    gpiochip0  unexport
#ls /sys/class/gpio/gpio192/
active_low direction subsystem/ value device/ power/ uevent
#echo "out" > /sys/class/gpio/gpio192/direction #设置为输出
#echo 0 > /sys/class/gpio/gpio192/value     #亮灯
#echo 1 > /sys/class/gpio/gpio192/value #灭灯
#echo "in" > /sys/class/gpio/gpio192/direction #设置为输入
#cat /sys/class/gpio/gpio192/value #读取电平
0

离线

#7 2021-04-05 00:04:13

raspberryman
会员
注册时间: 2019-12-27
已发帖子: 503
积分: 465

Re: go语言开发f1c100s之点灯

32 * (G- A) + 0=192

离线

#8 2021-04-05 00:09:45

mysteryli
会员
注册时间: 2020-03-05
已发帖子: 486
积分: 391
个人网站

Re: go语言开发f1c100s之点灯

我想使用USB_ID引脚 提示busy,我不用usb,id引脚应该可以释放出来吧?是不是要改设备树?
QQ截图20210329203617_20210405-0008.jpg
QQ截图20210329203617_20210405-0009.jpg
我用的荔枝派官方设备树

离线

页脚

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

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