1. 程式人生 > >arduino自己製作庫檔案的經歷-2018/9/28

arduino自己製作庫檔案的經歷-2018/9/28

新建檔案後以下操作:如圖 在這裡插入圖片描述 同理在建立一個.h的書籤如圖在這裡插入圖片描述 最後效果如下兩個書籤的名字一定要一樣。 在這裡插入圖片描述 下邊上三個資料夾的程式碼,詳細講解我過程中報錯的原因。在程式碼裡漢字提醒 主檔案

#include "GAME.h"
GAME we;//例項化 一定不能少   直接用的話標籤名的話 報錯 we可隨意改注意保持上下一樣即可
void setup() 
{  
  we. part_init();
   Serial.begin(9600);
}
void loop() 
{ 
 char inChar = (char)Serial.read();
 char  cha;int i;
   if (inChar == '1') 
    {
      we.arrows_create(33,18,23,28); //例項化的名.函式名  中間有點
      we.arrows_delete(49,34,39,44);
      we.arrows_delete(65,50,55,60); i=1;  inChar='a';  
    }
 if (inChar == '2') 
    {
       we.arrows_create(49,34,39,44);
       we.arrows_delete(33,18,23,28);
       we.arrows_delete(65,50,55,60);
         i=2;
        inChar='b';
    }
    if (inChar == '3') 
    {
        we.arrows_create(65,50,55,60);
        we.arrows_delete(49,34,39,44);
        we.arrows_delete(33,18,23,28);

         i=3;
        inChar='c';
    }
    if(inChar == '4'&& i == 1 )
       { 
        RSCG12864B.clear();
       }
  
     
}

.cpp的程式碼

#include"GAME.h"
#include <RSCG12864B.h>//注意位置
#include "Arduino.h"//一定不能少
void GAME::part_init()//函式都是這樣        標籤名字::想創的函式名   中間兩個冒號
{
  
   RSCG12864B.begin();//串列埠初始化
   RSCG12864B.brightness(255);//
   char c1[]={0xCD,0xF5,0xD5,0xDF,0xC8,0xD9,0xD2,0xAB,0,};//
   char c2[]={  0xD0, 0xC2,0xB5, 0xC4,0xD5, 0xF7,0xB3,0xCC,0,};//
   char c3[]={0xC7,0xB0,0xCA,0xC0,0xD6,0xAE,0xC2,0xC3,0,};//
   char c4[]={0xCD,0xCB,0xB3,0xF6,0xD3,0xCE,0xCF,0xB7,0,};//
   char c5[]={0XD6,0XA7,0XB3,0XD6,0X32,0X44,0XBB,0XE6,0XCD,0XBC,0};//
   RSCG12864B.print_string_16_xy(32,0,c1);//
   RSCG12864B.print_string_12_xy(40,20,c2);//
   RSCG12864B.print_string_12_xy(40,36,c3);//
   RSCG12864B.print_string_12_xy(40,52,c4);//
}
void GAME::arrows_create(int q,int m,int n,int a)
{
  int i,y;
  RSCG12864B.draw_fill_rectangle(22,n,31,a);
   for(i=31;i<=37;i++)
   { q=q-1;m=m+1;
    for(y=m;y<=q;y++)
   RSCG12864B.draw_line(i,m,i,y);//18,33
   }
}
void GAME::arrows_delete(int q,int m,int n,int a)
{   int i,y;
   RSCG12864B.delete_fill_rectangle(22,n,31,a);
   for(i=31;i<=37;i++)
   { q=q-1;m=m+1;
    for(y=m;y<=q;y++)
   RSCG12864B.delete_line(i,m,i,y);
   }
}

.h程式碼

#ifndef _GAME_H__
#define _GAME_H__
#include <RSCG12864B.h>//這個我呼叫裡邊函數了,庫檔案在我部落格裡12864B i2c裡 你們自制可以不加
#include"Arduino.h"  //一定有不能刪

class GAME//換自己的標籤名
{
private://函式內部用  是冒號不是分號

public://函式外部用  是冒號不是分號
void part_init();//到這裡標籤名不寫,直接寫函式名
void arrows_create( int q,int m,int n,int a);
void arrows_delete(int q,int m,int n,int a);
};//分號不要忘

#endif

下邊是我的程式碼效果圖串列埠監視傳送 1 2 3 4有驚喜。 在這裡插入圖片描述 之後新建資料夾 將 .cpp和.h 移動到 新建的資料夾中名字不要和原檔名重複 找到自己arduino安裝位置 檔案移動到//arduino//libraries中 這個是我的途徑D:\Program Files (x86)\Arduino\libraries 資料夾放在libraries中 我的這個方法 每次呼叫前 除了有標頭檔案外還要有例項化 。

例項化 其實可以省 ,樓主看不懂 keyword.txt操作。很難受。 就這麼多了,希望大佬多指點指點。