pcDuino上跑第一個Arduino程序_blink

入手pcDuino有一段時間了,鼓起勇氣刷了個官方最新lubuntu系統,開始個人arduino之旅。剛剛調通了第一個基於arduino語言的led閃爍程序,與你們分享。Arduino就這麼簡單,很好上手。git

目標:使接在pcduino上的led燈閃爍github

硬件鏈接:一個led燈+限流電阻,一端接5V,另外一端接pcduino上的任一GPIO(0-13)web

1、搭建環境ubuntu

安裝官方文檔刷最新ubuntu系統,很詳細再也不細說。其實刷機時接上debug,會有提示安裝信息,不用一直盯着TX RX led。下載https://github.com/pcduino/c_enviroment上面的arduino例程。app

2、編寫arduino代碼dom

我是參考arduino給的例子寫的,以爲arduino語言太好上手,沒有什麼硬件基礎均可以玩。下面編寫一個led閃爍程序blinkoop

在arduino-master\test增長blank.c文件:arduino-master\test\blink.c測試

[plain]   view plain copy
<EMBED id=ZeroClipboardMovie_1 height=18 name=ZeroClipboardMovie_1 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=1&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. /*  
  2. * I/O test program for a10  
  3. * Blink  
  4. * Turns on an LED on for one second, then off for one second, repeatedly.  
  5. * This example code is in the public domain.  
  6. */  
  7.   
  8. #include <core.h>  
  9. int led_pin = 5;  
  10.   
  11. void setup()  
  12. {  
  13.     if ( argc !=2 )  
  14.     {  
  15.         printf("Usage %s  LED_PIN_NUM(0-13)\n", argv[0]);  
  16.         exit(-1);     
  17.     }  
  18.       
  19.     
  20.     led_pin = atoi(argv[1]);  
  21.       
  22.     printf("blink  LED (connected to pin %d)\n",led_pin);  
  23.   
  24.   // initialize the digital pin as an output.  
  25.   // led_pin has an LED connected on most Arduino boards:  
  26.   pinMode(led_pin, OUTPUT);       
  27. }  
  28.   
  29. void loop() {  
  30.   digitalWrite(led_pin, HIGH);   // set the LED on  
  31.   delay(1000);              // wait for a second  
  32.   digitalWrite(led_pin, LOW);    // set the LED off  
  33.   delay(1000);              // wait for a second  
  34. }  

修改arduino-master\test\Makefile:ui

[plain]   view plain copy
<EMBED id=ZeroClipboardMovie_2 height=18 name=ZeroClipboardMovie_2 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=2&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. LIBS=-L../../sample/core -larduino -lspi  
  2. INCS=-I../../sample/core/include  
  3. TARGET=../../sample/test  
  4.   
  5. OBJS = io_test adc_test pwm_test spi_test adxl345_test blink  
  6.   
  7. all: $(OBJS)  
  8.     @mkdir -p $(TARGET)  
  9.     @mv $(OBJS) $(TARGET)  
  10.   
  11. io_test: io_test.c  
  12.     $(CC) $(LIBS) $(INCS) $< -o $@  
  13.   
  14. blink: blink.c  
  15.     $(CC) $(LIBS) $(INCS) $< -o $@  
  16.   
  17. adc_test: adc_test.c  
  18.     $(CC) $(LIBS) $(INCS) $< -o $@  
  19.   
  20. pwm_test: pwm_test.c  
  21.     $(CC) $(LIBS) $(INCS) $< -o $@  
  22.   
  23. spi_test: spi_test.c    
  24.     $(CC) $(LIBS) $(INCS) $< -o $@  
  25.   
  26. adxl345_test: adxl345_test.c  
  27.     $(CC) $< -o $@  
  28. clean:  
  29.     @for i in $(OBJS); do rm -f $(TARGET)/$$i; done  

其中blink: blink.c是新加的led閃爍程序。就這樣,代碼就編寫完了spa

3、編譯

ubuntu@ubuntu:/$ cd home/ubuntu/work/arduino-master/test/
ubuntu@ubuntu:~/work/arduino-master/test$ ls
Makefile  adc_test.c  adxl345_test.c  blink.c  io_test.c  pwm_test.c  spi_test.c
ubuntu@ubuntu:~/work/arduino-master/test$ make
cc -L../../sample/core -larduino -lspi -I../../sample/core/include io_test.c -o io_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include adc_test.c -o adc_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include pwm_test.c -o pwm_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include spi_test.c -o spi_test
cc adxl345_test.c -o adxl345_test
cc -L../../sample/core -larduino -lspi -I../../sample/core/include blink.c -o blink
ubuntu@ubuntu:~/work/arduino-master/test$ cd ../../
ubuntu@ubuntu:~/work$ cd sample/
ubuntu@ubuntu:~/work/sample$ ls
core  test
ubuntu@ubuntu:~/work/sample$ cd test/
ubuntu@ubuntu:~/work/sample/test$ ls
adc_test  adxl345_test  blink  io_test  pwm_test  spi_test
ubuntu@ubuntu:~/work/sample/test$ 

分析Makefile可知,最終編譯生成的擴展性文件在/home/ubuntu/work/sample目錄下

4、測試

開始測試寫的blink.c led閃爍程序,個人led接在gpio5上,傳入參數5

ubuntu@ubuntu:~/work/sample/test$ ./blink 5
blink  LED (connected to pin 5)

如今就能夠看到接在GPIO5上的LED燈開始閃爍了。Arduino程序就這麼簡單,但又很靈活,不信你也能夠試試。

相關文章
相關標籤/搜索