pcDuino上跑第一个Arduino程序_blink

本文介绍了如何在pcDuino上安装Ubuntu系统并搭建Arduino开发环境,编写并运行了第一个LED闪烁程序blink。通过硬件连接LED和限流电阻,然后编译并执行代码,成功实现了LED的闪烁效果,展示了Arduino语言的易用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入手pcDuino有一段时间了,鼓起勇气刷了个官方最新lubuntu系统,开始我的arduino之旅。刚刚调通了第一个基于arduino语言的led闪烁程序,与大家分享。Arduino就这么简单,很好上手。

目标:使接在pcduino上的led灯闪烁

硬件连接:一个led灯+限流电阻,一端接5V,另一端接pcduino上的任一GPIO(0-13)

一、搭建环境

安装官方文档刷最新ubuntu系统,很详细不再细说。其实刷机时接上debug,会有提示安装信息,不用一直盯着TX RX led。下载https://github.com/pcduino/c_enviroment上面的arduino例程。

二、编写arduino代码

我是参考arduino给的例子写的,觉得arduino语言太好上手,没有什么硬件基础都可以玩。下面编写一个led闪烁程序blink

在arduino-master\test增加blank.c文件:arduino-master\test\blink.c

/*
* I/O test program for a10
* Blink
* Turns on an LED on for one second, then off for one second, repeatedly.
* This example code is in the public domain.
*/

#include <core.h>
int led_pin = 5;

void setup()
{
    if ( argc !=2 )
    {
        printf("Usage %s  LED_PIN_NUM(0-13)\n", argv[0]);
        exit(-1);   
    }
    
  
    led_pin = atoi(argv[1]);
    
    printf("blink  LED (connected to pin %d)\n",led_pin);

  // initialize the digital pin as an output.
  // led_pin has an LED connected on most Arduino boards:
  pinMode(led_pin, OUTPUT);     
}

void loop() {
  digitalWrite(led_pin, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(led_pin, LOW);    // set the LED off
  delay(1000);              // wait for a second
}
修改arduino-master\test\Makefile:

LIBS=-L../../sample/core -larduino -lspi
INCS=-I../../sample/core/include
TARGET=../../sample/test

OBJS = io_test adc_test pwm_test spi_test adxl345_test blink

all: $(OBJS)
	@mkdir -p $(TARGET)
	@mv $(OBJS) $(TARGET)

io_test: io_test.c
	$(CC) $(LIBS) $(INCS) $< -o $@

blink: blink.c
	$(CC) $(LIBS) $(INCS) $< -o $@

adc_test: adc_test.c
	$(CC) $(LIBS) $(INCS) $< -o $@

pwm_test: pwm_test.c
	$(CC) $(LIBS) $(INCS) $< -o $@

spi_test: spi_test.c  
	$(CC) $(LIBS) $(INCS) $< -o $@

adxl345_test: adxl345_test.c
	$(CC) $< -o $@
clean:
	@for i in $(OBJS); do rm -f $(TARGET)/$$i; done
其中blink: blink.c是新加的led闪烁程序。就这样,代码就编写完了

三、编译

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目录下

四、测试

开始测试写的blink.c led闪烁程序,我的led接在gpio5上,传入参数5

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

现在就可以看到接在GPIO5上的LED灯开始闪烁了。Arduino程序就这么简单,但又很灵活,不信你也可以试试。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值