久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2704|回復: 3
打印 上一主題 下一主題
收起左側

arduino 如何驅動oled

[復制鏈接]
跳轉到指定樓層
樓主
ID:128952 發表于 2016-7-2 18:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用K60能驅動oled.用的庫
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:121867 發表于 2016-7-4 17:14 | 只看該作者
//本程序實現了一個字符串向左移動,向右移動,向下稱動,向上移動,在同一個位置顯示一個ASCII字符 //將各個函數改寫使之通用化 #include "U8glib.h" U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);        // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are  SCK = 13 and MOSI = 11) char str1[]="HW SPI Com: CS = 10, A0 = 9 "; char str2[]="HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are  SCK = 13 and MOSI = 11)";     void moveStrToRight(char *str,int x,int y) //這個函數未實現字符串從左向右移動,而是出現了字符串疊加的現象。 //原來是字符串太長了 {     for (int i=0;i<=12;i++)   {      u8g.firstPage();       do {         u8g.drawStr(i*10+x,y,(char *)str);         }      while( u8g.nextPage() );         delay(100);   }     }   void moveStr2ToRight(char *str1,char *str2,int x1,int y1,int x2,int y2) //這個函數未實現字符串從左向右移動,而是出現了字符串疊加的現象。 //原來是字符串太長了 {     for (int i=0;i<=12;i++)   {      u8g.firstPage();       do {         u8g.drawStr(i*10+x1,y1,(char *)str1);       u8g.drawStr(i*10+x2,y2,(char *)str2);         }      while( u8g.nextPage() );         delay(100);   }     }     void moveStrToLeft(char *str,int x, int y) //這個函數未實現字符串從右向左移動,而是出現了字符串疊加的現象。 //原來是字符串太長了 {         for (int i=0;i<=12;i++)   {      u8g.firstPage();       do {       u8g.drawStr(x-i*10,y,(char *)str1);       }      while( u8g.nextPage() );         delay(100);   }     } void moveStrToDown(char *str,int x ,int y)// 這個過程是字符串豎直排,從上向下移動位置   {     //注這個字符串共有20個字符,20*8=160(字體像素以6*8計算)   //顯示的位置是從Y軸-160開始,然后每次向下增進10個像素值,從上向下完全的完整顯示字符串   for (int i=0;i<=10;i++)   {      u8g.firstPage();       do {       u8g.drawStr90(x,i*16-y,(char *)str);           }      while( u8g.nextPage() );         delay(100);   }     }   void moveStrToUp(char *str,int x,int y)// 這個過程是字符串豎直排,從下向上移動位置   {       //str1[]  注這個字符串共有20個字符,20*8=160(字體像素以6*8計算)   //顯示的位置是從Y軸-160開始,然后每次向上增進10個像素值,從下向上完全的完整顯示字符串   //為了能顯示最后一個字符,Y軸的值至少為-20*8=-160   for (int i=0;i<=17;i++)   {      u8g.firstPage();       do {       u8g.drawStr90(x,y-i*10,(char *)str1);       }      while( u8g.nextPage() );         delay(100);   }     } void u8g_prepare(void) {   u8g.setFont(u8g_font_6x10);   u8g.setFontRefHeightExtendedText();   u8g.setDefaultForegroundColor();   u8g.setFontPosTop(); } uint8_t draw_state = 0;   void mydraw(void) {   u8g_prepare();   switch(draw_state >> 3) {   case 0:      moveStrToLeft(str1,120,10); //x=20(個字符數)*6(字符寬),y=10差不多在第一行     break;   case 1:        moveStrToRight(str1,0,10) ; //x=0,y=10 ,y=10差不多在第一行     break;   case 2:      moveStrToUp(str1,10,60); //x=10,y=60 x在超過一個字符位置,Y在差不多第六行     break;   case 3:      moveStrToDown(str1,10,120); //x=10,由于str1字符長度20個,字符串長度是=20*8=160,y就等于120     break;   case 4:      displayAchar(); //在依次顯示不同的ASCII字符     break;    case 5:      u8g_ascii_1(30,50); //在指定的坐標,顯示不同的ASCII字符     break;         } }     void u8g_ascii_1(int i,int j) //顯示ascii在屏幕上 {   char s[2] = " ";   uint8_t x, y;     for( y = 0; y < 6; y++ ) {     for( x = 0; x < 16; x++ )      {       s[0] = y*16 + x + 32;       do {         u8g.drawStr( 0, 0, "ASCII page 1");         u8g.drawStr(i, j, s);            //如果需要依次在不同的位置顯示,如下行         //  u8g.drawStr(x*7+i, y*10+j, s);                 delay(50);         }        while( u8g.nextPage() );           }   } }     void setup() {       if ( u8g.getMode() == U8G_MODE_R3G3B2 )      u8g.setColorIndex(255);     // white   else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )     u8g.setColorIndex(3);         // max intensity   else if ( u8g.getMode() == U8G_MODE_BW )     u8g.setColorIndex(1);         // pixel on     // u8g.setFont(u8g_font_unifont);   Serial.begin(9600);       u8g_prepare();//初始化字體,屏幕參數       }   void loop() {       //moveStr2ToRight(str1,str2,0,0,0,10);   mydraw();   draw_state++;   if ( draw_state >= 7*8 )     draw_state = 0;     // rebuild the picture after some delay   delay(100);   }       void displayAchar()//這個過程,依次在不同的坐標,顯示不同ASCII的字符 {     char s[2] = " ";   uint8_t x, y;     for( y = 0; y < 6; y++ ) {     for( x = 0; x < 16; x++ )      {       s[0] = y*16 + x + 32;       u8g.firstPage();         do {         u8g.drawStr( 0, 0, "ASCII page 1");         //  u8g.drawStr(31, 40, s);            //如果需要依次在不同的位置顯示,如下行         u8g.drawStr(x*7, y*10, s);                 delay(50);         }        while( u8g.nextPage() );           }   }   }
回復

使用道具 舉報

板凳
ID:121867 發表于 2016-7-4 17:16 | 只看該作者
那是驅動程序,接線的話GND接地 VCC接3.3V或者5V
SCL接A5, SDA接A4,
回復

使用道具 舉報

地板
ID:121867 發表于 2016-7-4 17:16 | 只看該作者
庫文件自己去網上下吧 一大把 給你傳不過來
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频导航 | 噜久寡妇噜噜久久寡妇 | 在线看亚洲 | 一级毛片在线播放 | 91免费观看在线 | 国产精品久久久久永久免费观看 | 国产乱码高清区二区三区在线 | 一级毛片播放 | 日本 欧美 三级 高清 视频 | 91在线中文字幕 | 亚洲精品乱码 | 狠狠干狠狠插 | 精品久久久久一区二区国产 | 91九色视频 | 欧美日韩国产一区二区三区 | 九九热国产视频 | 色片在线观看 | 国产精品美女一区二区 | 操操操av| 欧美日韩亚洲国产综合 | 中文字幕1区 | 久久天天躁狠狠躁夜夜躁2014 | 久久激情网 | 日韩国产在线观看 | 国产真实精品久久二三区 | 日韩精品一区二区三区视频播放 | 成人免费观看男女羞羞视频 | 国产在线中文字幕 | 成人激情视频 | 久久国产精品一区二区 | 人人爽人人草 | 午夜精品久久久久久久星辰影院 | 国产亚洲日本精品 | 久久久久久久久久一区二区 | 国产综合精品一区二区三区 | 99精品在线 | 91免费观看视频 | 亚洲精品一区久久久久久 | 成年人在线视频 | 久久久国产一区二区三区四区小说 | 国产精品一区一区 |