TA的每日心情 | 奋斗 2023-6-27 14:09 |
---|
签到天数: 943 天 连续签到: 1 天 [LV.10]以坛为家III
|
本帖最后由 9robot 于 2017-5-14 10:50 编辑
拿到Curie nano也有段时间了,一直没发帖子,先发一个,后续再更新一下。我的学习过程基本上是依据arduino IDE自带的例子来学习的。
一、开发环境的建立
在活动还没开始时,管理员就已经在论坛里贴出了Curie Nano的开发环境的教程,不在赘述,相对还是比较简单的。就是需要有点耐心,我在网络状况良好的情况下,重复了大概五次吧,才安装成功。
二、IO的使用
学单片机时,习惯了称呼引脚为GPIO,但是看大家都不会这么称呼arduino 的引脚。
Curie Nano的IO资源如下,虽然和单片机比,在数量上不具有优势,但是对于一般的应用还是够用的。
- 数字IO口:15个(包含4个PWM引脚D3,D5,D6,D9)
- 模拟IO输入:6个
- IO口直流驱动能力:2mA-8mA
拿到板子建立好工程后,第一步是点灯,例子里面有blink程序,打开后,编译下载到Curie Nano中,在过5秒后可以看到板子上的绿色LED每个500毫秒的间隔闪烁。- // the setup function runs once when you press reset or power the board
- void setup() {
- // initialize digital pin LED_BUILTIN as an output.
- pinMode(LED_BUILTIN, OUTPUT);
- }
- // the loop function runs over and over again forever
- void loop() {
- digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(1000); // wait for a second
- digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
- delay(1000); // wait for a second
- }
复制代码 这里面用到两个和IO有关的函数,pinMode(LED_BUILTIN, OUTPUT)、digitalWrite(LED_BUILTIN, HIGH),
pinMode(LED_BUILTIN, OUTPUT)函数用于设定IO的工作模式,第一个参数选择端口,如写9,则是对D9进行设定,第二个参数则是工作模式,有三种工作模式
OUTPUT | 输出模式 | INPUT_PULLUP | 输入上拉模式 |
digitalWrite(LED_BUILTIN, HIGH)函数用于对引脚的电平进行控制,LED_BUILTIN实际是D13,该函数将D13的点评设置为高,实际也可以将HIGH替换为1。
如果想要使用按键,则可以将IO设置为输入模式,采用digitalRead(2)函数读取D2引脚上的电平,返回值为0或1,代表低电平和高电平,下面函数完成的对D2的电平高低的读取。- int pushButton = 2;
- // the setup routine runs once when you press reset:
- void setup() {
- // initialize serial communication at 9600 bits per second:
- Serial.begin(9600);
- // make the pushbutton's pin an input:
- pinMode(pushButton, INPUT);
- }
- // the loop routine runs over and over again forever:
- void loop() {
- // read the input pin:
- int buttonState = digitalRead(pushButton);
- // print out the state of the button:
- Serial.println(buttonState);
- delay(1); // delay in between reads for stability
- }
复制代码 Curie Nano自带了6个模拟端口,10位ADC,但电压不能超过3.3V,在使用模拟端口时,不需要进行初始化设置,直接使用analogRead(A0)函数即可,返回一个值,这个值除以1023乘以3.3就是端口上对应的电压。- // the setup routine runs once when you press reset:
- void setup() {
- // initialize serial communication at 9600 bits per second:
- Serial.begin(9600);
- }
- // the loop routine runs over and over again forever:
- void loop() {
- // read the input on analog pin 0:
- int sensorValue = analogRead(A0);
- // print out the value you read:
- Serial.println(sensorValue);
- delay(1); // delay in between reads for stability
- }
复制代码 |
|