电子开发 | 基础入门 | 电路原理图 | 梯形图实例 | PLC基础   《如果喜欢本站,请按 Ctrl+D 手动收藏!感谢您的支持》一起学习一起进步,电子开发王欢迎您!.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

★电路公式手册,最新版《电子电路公式计算器》,电路公式查询手册 电路公式计算器【电子从业人员必备手册】
☆十天学会单片机实例100 c语言 chm格式。资料内容详细,覆盖例子多,内容广【电子从业人员必备手册】
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

Arduino入门2——常用函数及用法_arduino常用函数手册

作者:佚名    文章来源:网络整理    点击数:49    更新时间:2025/3/14

Arduino入门2——串口驱动函数及用法

上期,我们简单的认识了一下Arduino,浅浅的入了个门,这一期我们介绍以下Arduino串口常用的函数及用法

1.IO

常用串口库函数如下:

函数名 用法及解析
pinMode() 用于IO口初始化
digitalWrite() 对IO口写入高低电平
digitalRead() 读取IO口的高低电平
analogReference() 配置AD采集的参考电压
analogWrite() 对应IO口实现AD转换,精度可达10位
analogRead() 对应IO口实现DA转换,精度为8位

下面是对应的一些用法:

  1. pinMode()
     

  2. digitalWrite()
     

  3. digitalRead()
     

  4. analogReference()
     

  5. analogWrite()
     

  6. analogRead()

 

2.串口

常用串口库函数如下:

函数名 用法及解析
Serial.begin(9600) 用于串口初始化,参数为波特率
Serial.print(val,fromat) 串口输出函数,val为输出的内容,fromat为输出格式,可以省略,省略时默认为十进制
Serial.println(val,fromat) 串口输出函数,相对于Serial.print的区别是自带换行
Serial.write(val) 串口输出函数,发送单个字节或字符串
Serial.available() 用于检测串口是否接收到数据,返回值为读取数据的长度
Serial.read() 串口读取函数,每次读取一个字节并返回,当串口没有接收到数据时,返回-1,读取完数据后,下次调用会读取下个字节
Serial.parselnt() 串口解析函数,用来读取接收到的数据中的整数,在读取到整数后读取到字符会停止,读取后缓冲区内的内容会被清除。比如读取的内容为123adc456,则需要读取两次,第一次读取到123.第二次读取adc456,但由于adc为字符,所有只读取456。
Serial.parseFloat() 也是串口解析函数,用来读取小数

下面是对应的一些用法:

  1. 示例1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  Serial.print("Hello");   //发送字符串
  Serial.print('A');       //发送字符
  Serial.println(25);        //默认以10进制发送数字25
  Serial.println(25,DEC);        //十进制发送数字25 -》 25
  Serial.println(25,BIN);        //二进制发送数字25 -》 11001
  Serial.println(25,OCT);        //八进制发送数字25 -》 31
  Serial.println(25,HEX);        //八进制发送数字25 -》 19
  Serial.print(1.2345);    //发送1.23,默认保留2位小数,四舍五入
  delay(50000);
}
  1. 结果1:
     
  2. 示例2:
1
2
3
4
5
6
7
8
9
10
11
12
13
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  for(int i = 0 ;i<Serial.available();i++)  //判断是否介绍到数据,
  {<!-- -->
    Serial.write(Serial.read()); //依次打印介绍的数据
    Serial.println();            //换行
    delay(500);                  // 延时,让显示更直观
  }
}
  1. 结果2:
     
  2. 示例3:
1
2
3
4
5
6
7
8
9
10
11
12
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);   //串口初始化
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  for(int i = 0 ;i<Serial.available();i++)  //判断是否介绍到数据,
  {<!-- -->
    Serial.print(Serial.parseInt()); //依次打印接收的整数
    Serial.println();            //换行
    delay(500);                  // 延时,让显示更直观
  }
  1. 结果3:
     
  2. 建立开发板与电脑串口连接,像电脑发送姓名、年龄、身高等信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//1. 建立开发板与电脑串口连接,像电脑发送姓名、年龄、身高等信息
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  Serial.write("naem: 不想写代码的我");
  Serial.println();
  Serial.write("age: 18");
  Serial.println();
  Serial.write("height: 180");
  Serial.println();
  delay(1000);
}
  1. 实现通过串口监视器给开发板发送信息,在把接收的信息发送回去
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//实现通过串口监视器给开发板发送信息,在把接收的信息发送回去
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  for(int i =0; i<Serial.available();i++)
  {<!-- -->
    Serial.write(Serial.read());
    Serial.println();
    delay(500);
  }
   
}
  1. 实现加法计算器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//实现加法计算器,
int Add(int a,int b)
{<!-- -->
  Serial.print(a);
  Serial.print('+');
  Serial.print(b);
  Serial.print('=');
  Serial.println(a+b);
 return a+b;
}
void setup() {<!-- -->
  // put your setup code here, to run once:
  Serial.begin(9600);
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  if(Serial.available())
  {<!-- -->
    Add(Serial.parseInt(),Serial.parseInt());
  }

3.中断

常中断函数如下:

函数名 用法及解析
attachInterrupt() 中断开启函数
digitalPinToInterrupt() 获取对应引脚中断号的函数,返回值为中断编号
detachInterrupt() 关闭引脚对应的中断

下面是其对应的用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
attachInterrupt()中断开启函数,
第一个参数是开启的中断号,不同引脚、不同开发板对应的中断号不同,这一点需要注意
第二个参数是对应中断的服务函数,需要自己定义,必须是无参数无返回值类型
第三个是中断的触发方式,一个四种:LOW,低电平触发;CHANGE,电平变化触发;FALLING,下降沿触发;RISING,上升沿触发;
此外,还有一种触发方式,HIGH,只有 Due, Zero and MKR1000这些板子支持。
注:不同开发板引脚与中断号对应如下:
 中断号:     0       1     2     3     4     5
  UNO       引脚2    3     
  Mega2560  引脚2    3     21    20    19     18
  Leonardo  引脚3    2     0      1
  Due       ------------所有IO口----------------
digitalPinToInterrupt(pin):获取对应引脚中断号的函数,返回值为中断编号
detachInterrupt(pin);关闭引脚对应的中断,一般不常用
*/
int i = 0;
void setup() {<!-- -->
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN,OUTPUT);       //设置LED输出模式
  pinMode(2,OUTPUT);                // 定义引脚2,作为输入,将引脚2和引脚3通过杜邦线相连,通过对引脚2写入数据触发引脚3的中断
  digitalWrite(2,LOW);              //设置引脚2初始电平为低电平
  digitalWrite(LED_BUILTIN,LOW);    //熄灭LED
  attachInterrupt(digitalPinToInterrupt(3),function,CHANGE);  //开启引脚3对应的中断
  
}
void loop() {<!-- -->
  // put your main code here, to run repeatedly:
  i++; 
  digitalWrite(2,i%2);  //通过i的值,改变引脚2,进而改变引脚3的电平,使其产生中断
  delay(500);           //每500ms产生一次中断
}
void function()
{<!-- -->
  digitalWrite(LED_BUILTIN,i%2);    //闪烁LED。
}

Tags:Arduino入门,Arduino,常用函数  
责任编辑:admin
  • 上一个文章:
  • 下一个文章: 没有了
  • 请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
        没有任何评论
    电子开发网:汇集综合各类电子制作与电路图的网站,plc工控技术,模电数电知识,单片机EDA等等!荟萃电路图网站精华,为工程师创造价值。欢迎关注微信公众号:电子开发网!

    三菱PLC软件 GX Wor

    西门子200smartPLC选

    模拟量转换工程量转

    简述555定时器工作原

    KingView组态王使用

    三菱FX3U PLC与组态
     简单三极管逆变器
     TL494制作50HZ逆变
     80W简单的功放电路
     555制作的简易电子
     850热风枪电路图原
     直流12v荧光灯电路
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询