日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 基礎(chǔ)入門 >> Arduino開發(fā)學(xué)習(xí) >> 正文

Arduino入門2——常用函數(shù)及用法_arduino常用函數(shù)手冊

作者:佚名    文章來源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2025/3/14

Arduino入門2——串口驅(qū)動(dòng)函數(shù)及用法

上期,我們簡單的認(rèn)識(shí)了一下Arduino,淺淺的入了個(gè)門,這一期我們介紹以下Arduino串口常用的函數(shù)及用法

1.IO

常用串口庫函數(shù)如下:

函數(shù)名 用法及解析
pinMode() 用于IO口初始化
digitalWrite() 對IO口寫入高低電平
digitalRead() 讀取IO口的高低電平
analogReference() 配置AD采集的參考電壓
analogWrite() 對應(yīng)IO口實(shí)現(xiàn)AD轉(zhuǎn)換,精度可達(dá)10位
analogRead() 對應(yīng)IO口實(shí)現(xiàn)DA轉(zhuǎn)換,精度為8位

下面是對應(yīng)的一些用法:

  1. pinMode()
     

  2. digitalWrite()
     

  3. digitalRead()
     

  4. analogReference()
     

  5. analogWrite()
     

  6. analogRead()

 

2.串口

常用串口庫函數(shù)如下:

函數(shù)名 用法及解析
Serial.begin(9600) 用于串口初始化,參數(shù)為波特率
Serial.print(val,fromat) 串口輸出函數(shù),val為輸出的內(nèi)容,fromat為輸出格式,可以省略,省略時(shí)默認(rèn)為十進(jìn)制
Serial.println(val,fromat) 串口輸出函數(shù),相對于Serial.print的區(qū)別是自帶換行
Serial.write(val) 串口輸出函數(shù),發(fā)送單個(gè)字節(jié)或字符串
Serial.available() 用于檢測串口是否接收到數(shù)據(jù),返回值為讀取數(shù)據(jù)的長度
Serial.read() 串口讀取函數(shù),每次讀取一個(gè)字節(jié)并返回,當(dāng)串口沒有接收到數(shù)據(jù)時(shí),返回-1,讀取完數(shù)據(jù)后,下次調(diào)用會(huì)讀取下個(gè)字節(jié)
Serial.parselnt() 串口解析函數(shù),用來讀取接收到的數(shù)據(jù)中的整數(shù),在讀取到整數(shù)后讀取到字符會(huì)停止,讀取后緩沖區(qū)內(nèi)的內(nèi)容會(huì)被清除。比如讀取的內(nèi)容為123adc456,則需要讀取兩次,第一次讀取到123.第二次讀取adc456,但由于adc為字符,所有只讀取456。
Serial.parseFloat() 也是串口解析函數(shù),用來讀取小數(shù)

下面是對應(yīng)的一些用法:

  1. 示例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.print("Hello");   //發(fā)送字符串
  Serial.print('A');       //發(fā)送字符
  Serial.println(25);        //默認(rèn)以10進(jìn)制發(fā)送數(shù)字25
  Serial.println(25,DEC);        //十進(jìn)制發(fā)送數(shù)字25 -》 25
  Serial.println(25,BIN);        //二進(jìn)制發(fā)送數(shù)字25 -》 11001
  Serial.println(25,OCT);        //八進(jìn)制發(fā)送數(shù)字25 -》 31
  Serial.println(25,HEX);        //八進(jìn)制發(fā)送數(shù)字25 -》 19
  Serial.print(1.2345);    //發(fā)送1.23,默認(rèn)保留2位小數(shù),四舍五入
  delay(50000);
}
  1. 結(jié)果1:
     
  2. 示例2:
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++)  //判斷是否介紹到數(shù)據(jù),
  {
    Serial.write(Serial.read()); //依次打印介紹的數(shù)據(jù)
    Serial.println();            //換行
    delay(500);                  // 延時(shí),讓顯示更直觀
  }
}
  1. 結(jié)果2:
     
  2. 示例3:
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++)  //判斷是否介紹到數(shù)據(jù),
  {
    Serial.print(Serial.parseInt()); //依次打印接收的整數(shù)
    Serial.println();            //換行
    delay(500);                  // 延時(shí),讓顯示更直觀
  }
  1. 結(jié)果3:
     
  2. 建立開發(fā)板與電腦串口連接,像電腦發(fā)送姓名、年齡、身高等信息
//1. 建立開發(fā)板與電腦串口連接,像電腦發(fā)送姓名、年齡、身高等信息
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. 實(shí)現(xiàn)通過串口監(jiān)視器給開發(fā)板發(fā)送信息,在把接收的信息發(fā)送回去
//實(shí)現(xiàn)通過串口監(jiān)視器給開發(fā)板發(fā)送信息,在把接收的信息發(fā)送回去
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. 實(shí)現(xiàn)加法計(jì)算器
//實(shí)現(xiàn)加法計(jì)算器,
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.中斷

常中斷函數(shù)如下:

函數(shù)名 用法及解析
attachInterrupt() 中斷開啟函數(shù)
digitalPinToInterrupt() 獲取對應(yīng)引腳中斷號(hào)的函數(shù),返回值為中斷編號(hào)
detachInterrupt() 關(guān)閉引腳對應(yīng)的中斷

下面是其對應(yīng)的用法:

/*
attachInterrupt()中斷開啟函數(shù),
第一個(gè)參數(shù)是開啟的中斷號(hào),不同引腳、不同開發(fā)板對應(yīng)的中斷號(hào)不同,這一點(diǎn)需要注意
第二個(gè)參數(shù)是對應(yīng)中斷的服務(wù)函數(shù),需要自己定義,必須是無參數(shù)無返回值類型
第三個(gè)是中斷的觸發(fā)方式,一個(gè)四種:LOW,低電平觸發(fā);CHANGE,電平變化觸發(fā);FALLING,下降沿觸發(fā);RISING,上升沿觸發(fā);
此外,還有一種觸發(fā)方式,HIGH,只有 Due, Zero and MKR1000這些板子支持。
注:不同開發(fā)板引腳與中斷號(hào)對應(yīng)如下:
 中斷號(hào):     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):獲取對應(yīng)引腳中斷號(hào)的函數(shù),返回值為中斷編號(hào)
detachInterrupt(pin);關(guān)閉引腳對應(yīng)的中斷,一般不常用
*/
int i = 0;
void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN,OUTPUT);       //設(shè)置LED輸出模式
  pinMode(2,OUTPUT);                // 定義引腳2,作為輸入,將引腳2和引腳3通過杜邦線相連,通過對引腳2寫入數(shù)據(jù)觸發(fā)引腳3的中斷
  digitalWrite(2,LOW);              //設(shè)置引腳2初始電平為低電平
  digitalWrite(LED_BUILTIN,LOW);    //熄滅LED
  attachInterrupt(digitalPinToInterrupt(3),function,CHANGE);  //開啟引腳3對應(yīng)的中斷
 
}
void loop() {
  // put your main code here, to run repeatedly:
  i++;  
  digitalWrite(2,i%2);  //通過i的值,改變引腳2,進(jìn)而改變引腳3的電平,使其產(chǎn)生中斷
  delay(500);           //每500ms產(chǎn)生一次中斷
}
void function()
{
  digitalWrite(LED_BUILTIN,i%2);    //閃爍LED。
}
Tags:Arduino入門,Arduino,常用函數(shù)  
責(zé)任編輯:admin
  • 上一個(gè)文章:
  • 下一個(gè)文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個(gè)字
    [ 查看全部 ] 網(wǎng)友評(píng)論
    關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    主站蜘蛛池模板: 乐安县| 伊吾县| 寿宁县| 嘉善县| 永宁县| 翼城县| 上饶市| 龙江县| 德庆县| 大方县| 红河县| 宜兰市| 仁怀市| 普格县| 沂源县| 辽宁省| 页游| 若尔盖县| 邛崃市| 宝山区| 始兴县| 饶河县| 道孚县| 昌江| 尉氏县| 仁布县| 昌图县| 莱州市| 韶关市| 开平市| 商南县| 曲麻莱县| 哈尔滨市| 内乡县| 涡阳县| 陆河县| 太和县| 休宁县| 彭水| 昌宁县| 太康县|