Arduino内带Bootloader程序,是系统上电后运行的第一段代码,它就像PC机BIOS中的程序,启动就进行自检,配置端口等,当然单片机就是靠烧写熔丝位来设定上电从boot区启动的,使用这个程序就可以直接把从串口发来的程序存放到flash区中。我们在使用Arduino编译环境下载程序时,就先让单片机复位,启动Bootloader程序引导串口发过来的程序顺利写入flash区中,flash可以重复烧写,因此想更新软件就是这么的方便。
Arduino 编译环境的使用
首先下载最新的编译软件Arduino0018,解压后可以直接使用,插上Arduino USB接口,并安装好驱动(Arduino Mega ATmega1280的USB 驱动程序是 “CDM 2.04.06.exe”),我们就可以开始练手了,单击我的电脑右键->属性->硬件->设备管理器查看到USB映射的串口地址(我的电脑地址是“USB Serial Port(COM3)”。
然后打开Arduino 0018........
Arduino开发编译环境很简洁,各个功能键功能描述如下:
接下来点Tools->Board选择开发板型号(我使用的是Arduino Mega ATmega1280)
所以这儿我选择Arduino Mega ,然后点Tools-->Serisl Port选择串口,即USB映射的串口地址。
以上各项设置好后,就可以打开自己的测试程序来实验一下,点File->Sketchbook->my test1->test1。
这是我先前建立的测试程序
test1实验程序需要几个发光二极管、限流电阻和几根杜邦线。工程代码如下:
int timer = 100; // 数字越大,时间越慢。
int pins[] = { 2, 3, 4, 5, 6, 7 }; // 引脚号码阵列。
int num_pins = 6; // 指针针(即长度的数量列阵)
void setup()
{
int i;
for (i = 0; i < num_pins; i++) // 数组元素从0到num_pins - 1被编号。
pinMode(pins[i], OUTPUT); // 设置每个指针作为输出。
}
void loop()
{
int i;
for (i = 0; i < num_pins; i++) { // 扫描通过每个引脚…
digitalWrite(pins[i], HIGH); // 置为高电平 (打开)
delay(timer); // 延时
digitalWrite(pins[i], LOW); // 置为低电平 (关闭)
for (i = num_pins - 1; i >= 0; i--) {
digitalWrite(pins[i], HIGH);
delay(timer);
digitalWrite(pins[i], LOW);
}
}
实验目的是让 2, 3, 4, 5, 6, 7 号数字输出管脚电平从左到右依次置高置低,再从右到左依次置高置低。
Arduino语言特点:
它是以setup()开头,loop()作为主体的一个程序构架。官方网站是这样描述setup()的:用来初始化变量,管脚模式,调用库函数等等,此函数只运行一次。loop()函数是一个循环函数,函数内的语句周而复始的循环执行,类似c语言中的“while(1){};”。
digitalWrite(); 函数就是改变相应管脚的电平状态,内部有2个参数赋值。
先编译这个工程文件,点编译按钮或Ctrl+R,编译完成后就可以下载到目标板了,点通过USB下载代码或Ctrl+U。下载过程中,你可以观察到TX和RX指示灯不停的闪烁。