Raspberry Pi with Go lang

前端之家收集整理的这篇文章主要介绍了Raspberry Pi with Go lang前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. // This program achieves LED blink on Raspberry Pi with Go lang.
  2. // This is implemented with hard-coding and uses only main function.
  3.  
  4. package main
  5.  
  6. import (
  7. "fmt"
  8. "os"
  9. "time"
  10. )
  11.  
  12. func main() {
  13. // Initialize GPIO25
  14. fmt.Println("Initialize GPIO25")
  15. fd,err := os.OpenFile("/sys/class/gpio/export",os.O_WRONLY|os.O_SYNC,0666)
  16. if err != nil {
  17. fmt.Println("open /sys/class/gpio/export fails")
  18. fmt.Println(err)
  19. return
  20. }
  21. fmt.Fprint(fd,"25")
  22. fd.Close()
  23.  
  24. // Check iinitialization result
  25. fmt.Println("Check initialization result")
  26. _,err = os.Stat("/sys/class/gpio/gpio25")
  27. if err != nil {
  28. fmt.Println("Export GPIO25 fails")
  29. fmt.Println(err)
  30. } else {
  31. fmt.Println("Export GPIO25 succeeds")
  32. }
  33.  
  34. // Set direction to out
  35. fmt.Println("Set direction of GPIO25 to out")
  36. fd,err = os.OpenFile("/sys/class/gpio/gpio25/direction",0666)
  37. if err != nil {
  38. fmt.Println("open /sys/class/gpio/gpio25/direction fails")
  39. fmt.Println(err)
  40. }
  41. fmt.Fprint(fd,"out")
  42. fd.Close()
  43.  
  44. // Start blink
  45. fmt.Println("Start blink")
  46. for i := 0; i < 20; i++ {
  47. fd,err := os.OpenFile("/sys/class/gpio/gpio25/value",0666)
  48. if err != nil {
  49. fmt.Println("open /sys/class/gpio/gpio25/value fails")
  50. fmt.Println(err)
  51. }
  52. if i%2 == 1 {
  53. // Turn on LED
  54. fmt.Fprint(fd,1)
  55. } else {
  56. // Turn off LED
  57. fmt.Fprint(fd,0)
  58. }
  59. fd.Close()
  60. time.Sleep(100 * time.Millisecond)
  61. }
  62.  
  63. // End
  64. fmt.Println("Start finalizing")
  65. fd,err = os.OpenFile("/sys/class/gpio/gpio25/value",0666)
  66. if err != nil {
  67. fmt.Println("open /sys/class/gpio/gpio25/value fails")
  68. fmt.Println(err)
  69. }
  70. // Turn off LED
  71. fmt.Println("Turn off LED")
  72. fmt.Fprint(fd,0)
  73.  
  74. fd.Close()
  75.  
  76. fd,err = os.OpenFile("/sys/class/gpio/unexport",0666)
  77. if err != nil {
  78. fmt.Println("open /sys/class/gpio/unexport fails")
  79. fmt.Println(err)
  80. return
  81. }
  82. fmt.Fprint(fd,"25")
  83. fd.Close()
  84. fmt.Println("End finalizing")
  85.  
  86. }

http://shang.qq.com/wpa/qunwpa?idkey=912ee9f1c4d48fd64877a62ce321ca041ff6780dee63a5ccaa07241719ea5be9多语言/高并发研究群

猜你在找的Go相关文章