第一课--LED灯闪烁实验/zh

来自Microduino Wikipedia
Jasonsheng讨论 | 贡献2014年8月17日 (日) 05:59的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Language English

目的

通过Microduino-CoreSTM32来控制一个led灯的亮灭,我们使用Maple IDE来编写程序,你可以非常简单的编程你的Microduino-CoreSTM32,编程方法与Arduino IDE编程几乎一模一样。

设备

Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。

  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • LED发光二极管 一个
    • 220欧姆电阻 一个
    • USB数据连接线 一根

实验原理图

  • 原理图有两种接法:
    • led的阴极接Microduino-CoreSTM32的GND,阳极接Microduino数据控制口13,这样就是高电平点亮led;
    • led的阴极接Microduino-CoreSTM32的数据控制口13,阳极接Microduino的VCC,这样就是低电平点亮led。

本实验中我们将采用第一种方法来进行实验,玩家可以尝试实验第二种方法,看看效果如何。

程序

int led = 13;              //定义控制led灯引脚
void setup() {                
  pinMode(led, OUTPUT);  //定义引脚为输出   
}
void loop() {
digitalWrite(led, HIGH);    //输出高电平
delay(1000);             // 延时1s
digitalWrite(led, LOW);    //输出低电平
delay(1000);            // 延时1s
}

我们来看看程序结构:

  • 先定义一个控制led灯的引脚,这里我们设定为13,玩家可以根据自己喜好更换引脚(0-21)来控制。

注意:0-13对应板子上的D0-D13。14-21对应的是板子上的A0-A7.例如通过A0脚控制led灯,需要将“int led = 13;”换成“int led = 14;”即可

  • steup()函数,初始化函数,函数里面的内容只执行一次;
  • loop()函数,循环函数,程序会循环执行函数里面的语法。该程序先让引脚输出高电平,延时1S后输出低电平,再延时1S

,内容结束,从头开始执行,因此可以看到led灯闪烁的效果。

  • pinMode(pin,mode),定义引脚输出状态,同时也可定义为输入状态。
  • digitalWrite(pin, HIGH);输出状态,高或低;
  • delay(ms);以ms为单位的延时。
int led=13;
void setup() {
    // Set up the built-in LED pin as an output:
    pinMode(led, OUTPUT);
}

void loop() {
    togglePin(led);          // Turn the LED from off to on, or on to off
    delay(1000);          // Wait for 1 second (1000 milliseconds)
}

语法说明: togglePin(led):切换在给定引脚(led)的值。 如果引脚为高电平,将其设置为低电平。如果是低,将它设置为高。并且该引脚必须有它的模式设置为输出。

调试

  • 按照原理图接线
  • 打开Maple IDE编译器,将程序拷贝到编译器中,选择好板卡(Microduino-CoreSTM32 to Flash)。点击下载按钮或者使用快捷键(Ctrl+U)即可完成下载。
  • 程序下载后,可看到led每隔1s闪烁一次。玩家可以更改相关参数来实验。