// This program achieves LED blink on Raspberry Pi with Go lang.
// This is implemented with hard-coding and uses only main function.
package main
import (
"fmt"
"os"
"time"
)
func main() {
// Initialize GPIO25
fmt.Println("Initialize GPIO25")
fd, err := os.OpenFile("/sys/class/gpio/export", os.O_WRONLY|os.O_SYNC, 0666)
if err != nil {
fmt.Println("open /sys/class/gpio/export fails")
fmt.Println(err)
return
}
fmt.Fprint(fd, "25")
fd.Close()
// Check iinitialization result
fmt.Println("Check initialization result")
_, err = os.Stat("/sys/class/gpio/gpio25")
if err != nil {
fmt.Println("Export GPIO25 fails")
fmt.Println(err)
} else {
fmt.Println("Export GPIO25 succeeds")
}
// Set direction to out
fmt.Println("Set direction of GPIO25 to out")
fd, err = os.OpenFile("/sys/class/gpio/gpio25/direction", os.O_WRONLY|os.O_SYNC, 0666)
if err != nil {
fmt.Println("open /sys/class/gpio/gpio25/direction fails")
fmt.Println(err)
}
fmt.Fprint(fd, "out")
fd.Close()
// Start blink
fmt.Println("Start blink")
for i := 0; i < 20; i++ {
fd, err := os.OpenFile("/sys/class/gpio/gpio25/value", os.O_WRONLY|os.O_SYNC, 0666)
if err != nil {
fmt.Println("open /sys/class/gpio/gpio25/value fails")
fmt.Println(err)
}
if i%2 == 1 {
// Turn on LED
fmt.Fprint(fd, 1)
} else {
// Turn off LED
fmt.Fprint(fd, 0)
}
fd.Close()
time.Sleep(100 * time.Millisecond)
}
// End
fmt.Println("Start finalizing")
fd, err = os.OpenFile("/sys/class/gpio/gpio25/value", os.O_WRONLY|os.O_SYNC, 0666)
if err != nil {
fmt.Println("open /sys/class/gpio/gpio25/value fails")
fmt.Println(err)
}
// Turn off LED
fmt.Println("Turn off LED")
fmt.Fprint(fd, 0)
fd.Close()
fd, err = os.OpenFile("/sys/class/gpio/unexport", os.O_WRONLY|os.O_SYNC, 0666)
if err != nil {
fmt.Println("open /sys/class/gpio/unexport fails")
fmt.Println(err)
return
}
fmt.Fprint(fd, "25")
fd.Close()
fmt.Println("End finalizing")
}
Raspberry Pi with Go lang
相關文章
- Raspberry PI USB wifi 設定WiFi
- Raspberry Pi 3簡明配置教程
- raspberry pi bookworm setting static ipWorm
- 讓Mono 4在Raspberry Pi上飛Mono
- Raspberry Pi 4B 安裝 CentOS 8CentOS
- Raspberry Pi 400上安裝vscodeVSCode
- 用Raspberry Pi搭建Azure IOT解決方案
- install java javac on kali linux, raspberry piJavaLinux
- PyCharm使用技巧:Raspberry Pi的遠端開發PyCharm
- crontab on raspberry pi, full path, not relative path, is needed.
- 樹莓派raspberry pi訪問Windows共享檔案樹莓派Windows
- 利用Raspberry Pi搭建一個基於OpenMediaVault系統的NAS
- Raspberry Pi二代開售:免費裝Win10Win10
- Raspberry PI 3B:連線到 SSID 時出現問題
- Raspberry PI:Shadowsocks+Polipo實現全域性科學上網
- [Raspberry PI 4B]how to clone a 32 GB SD card to a 16GB SD?
- 人工智慧入門與實戰 使用Raspberry Pi和Python演練人工智慧Python
- 初學程式設計:8款最佳Raspberry Pi 作業系統/專案程式設計作業系統
- 記錄給樹莓派刷Raspberry Pi OS(Raspbian)系統的配置流程樹莓派
- 電子創客案例手冊 Arduino和Raspberry Pi電子製作實戰UI
- Azure中將 Raspberry Pi 聯機模擬器連線到 Azure IoT 中心 (Node.js)Node.js
- Raspberry pi 3b+ 安裝dotnet5 VSCode Remote-SSH 遠端開發VSCodeREM
- Raspberry Pi Foundation:截止2013年2月樹莓派微型電腦銷出100萬臺樹莓派
- [GO-LANG] Why is my trivial program such a large binary?Go
- 我的樹莓派 Raspberry Pi Zero 2W 折騰筆記,記錄一些遇到的問題和解決辦法樹莓派筆記
- 第一章 Go lang開發環境搭建Go開發環境
- C語言中pi=&j和*pi=j的區別C語言
- go lang學習筆記——channel機理及排程理解Go筆記
- SAP PI入門
- JavaScript Math.PIJavaScript
- Happy Pi Day!APP
- 層次分明井然有條,Go lang1.18入門精煉教程,由白丁入鴻儒,Go lang包管理機制(package)EP10GoPackage
- 實證與虛無,抽象和具象,Go lang1.18入門精煉教程,由白丁入鴻儒,Go lang介面(interface)的使用EP08抽象Go
- Python 開發者在遷移到 Go(lang) 時需要知道哪些事?PythonGo
- Go Lang 使用go mod匯入本地包和第三方包飄紅解決方法Go
- Raspberry:Wiringpi的安裝及使用
- LANG和NLS_LANG的區別
- jQuery :lang()jQuery