創作內容

24 GP

Arduino SSD1306 128 x 64 Dot Matrix OLED 繪圖教學

作者:貓貓風 ฅ●ω●ฅ│2018-09-17 18:31:01│巴幣:48│人氣:13643
.


















SSD1306 簡介




SSD1306是一款單芯片CMOS OLED / PLED驅動控制器,用於有機/聚合物發光
二極管點陣圖形顯示系統。 由128 segments和64個commons組成
能支持最大顯示解析度為128(RGB)* 64像素。
IC是專為共陰極型OLED面板設計

SSD1306嵌入了對比度控制,顯示RAM和振盪器,減少
外部元件的數量和功耗。 具有256級亮度控制。 數據指令是
各MCU通用,使用硬體可選6800/8000系列兼容並行接口發送
或串行外設接口。 適用於許多緊湊型便攜式應用,例如
手機子顯示屏,MP3播放器和計算機等

此篇用的OLED 為 I2C通訊,當然也有 SPI通訊介面的,看個人需求選用

此OLED使用上主要輝搭配以下幾中函式庫

1. Adafruit_SSD1306 、 Adafruit_GFX

2. U8Glib

兩種都可以用來操作 SSD1306,可看個人習慣挑選,本篇使用項目一的組合來作演示

系統架構



---------------前置設定--------------------------


下載以下兩個函式庫



接著進行Config檔設定

路徑為 arduino-nightly\libraries\Adafruit_SSD1306-master\Adafruit_SSD1306.h

將 SSD1306_128_64 註解拿掉    註解 SSD1306_128_32 (預設為128 * 32

接著存檔

-------------以下開始實作-----------------


做一個簡單的範例,在螢幕上顯示文字與數字

以下做一個類似計數器的功能

會計算系統啟動所經過的秒數,每經過一秒會讓數值加一

由於該OLED是屬於雙色LED,上半部是黃色,下半部是藍色

因此下面印出來的文字都會依照以下顏色分布




附上程式碼


  1. #include <SPI.h>  
  2. #include <Wire.h>  
  3. #include <Adafruit_GFX.h>  
  4. #include <Adafruit_SSD1306.h>  
  5. #define OLED_RESET 4  
  6. Adafruit_SSD1306 display(OLED_RESET);  
  7.   
  8. #define NUMFLAKES 10  
  9. #define XPOS 0  
  10. #define YPOS 1  
  11. #define DELTAY 2  
  12.   
  13.   
  14. #define LOGO16_GLCD_HEIGHT 16  
  15. #define LOGO16_GLCD_WIDTH  16  
  16.   
  17. #define imageWidth 96  
  18. #define imageHeight 64  
  19.   
  20. int count = 0;  
  21.   
  22. static const unsigned char PROGMEM logo16_glcd_bmp[] =  
  23. { B00000000, B11000000,  
  24.   B00000001, B11000000,  
  25.   B00000001, B11000000,  
  26.   B00000011, B11100000,  
  27.   B11110011, B11100000,  
  28.   B11111110, B11111000,  
  29.   B01111110, B11111111,  
  30.   B00110011, B10011111,  
  31.   B00011111, B11111100,  
  32.   B00001101, B01110000,  
  33.   B00011011, B10100000,  
  34.   B00111111, B11100000,  
  35.   B00111111, B11110000,  
  36.   B01111100, B11110000,  
  37.   B01110000, B01110000,  
  38.   B00000000, B00110000 };  
  39.   
  40.   
  41. #if (SSD1306_LCDHEIGHT != 64)  
  42. #error("Height incorrect, please fix Adafruit_SSD1306.h!");  
  43. #endif  
  44.   
  45. void setup() {  
  46.   // put your setup code here, to run once:  
  47.    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr
  48. 0x3C (for the 128x64)  
  49.   // init done  
  50.   display.setTextColor(WHITE);  
  51.   // Show image buffer on the display hardware.  
  52.   // Since the buffer is intialized with an Adafruit splashscreen  
  53.   // internally, this will display the splashscreen.  
  54.   display.display();  
  55.   delay(2000);  
  56.   
  57.   // Clear the buffer.  
  58.   display.clearDisplay();  
  59. }  
  60.   
  61. void loop() {  
  62.   // put your main code here, to run repeatedly:  
  63.     
  64.   display.setTextSize(2);             //設置字體大小  
  65.   display.setCursor(0,0);  
  66.   display.println("OLED Test");          //輸出文字  
  67.   
  68.   display.setTextSize(2);               
  69.   display.setCursor(0,20);               //設置文字位置  
  70.   display.print("sec:");     
  71.     
  72.   display.setTextSize(2);               
  73.   display.setTextColor(WHITE);          
  74.   display.setCursor(60,20);              
  75.   display.println(count++);     
  76.   display.display();    
  77.     
  78.   delay(1000);  
  79.   display.clearDisplay();  
  80.   
  81. }  

接著為本篇的主題,可以呈現自己畫的圖片或是從網路上抓下來的圖片

Step1: 先打開小畫家,調整大小  選擇 像素 128 * 64



Step2: 開始畫圖,想畫什麼都可以,隨意

繪圖一: 隨便拉兩個幾何形狀

繪圖二: 用鉛筆畫




Step3: 畫完之後選擇  另存新檔 -> 單色點陣圖




Step4:  下載 LCD Assistant
載點: LCD Assistant

Step5:  轉換圖片為位元組

        開啟 LCD Assistant -> Load image   接著都如下圖設定



Step6: 設定完成後選擇 Save output 並輸入檔名,例如 test.txt




Step7:  打開剛剛儲存的檔案,會看到轉換好的 圖片陣列




Step8: 將此陣列引入程式碼中,如以下範例


  1. #include <SPI.h>  
  2. #include <Wire.h>  
  3. #include <Adafruit_GFX.h>  
  4. #include <Adafruit_SSD1306.h>  
  5. #define OLED_RESET 4  
  6. Adafruit_SSD1306 display(OLED_RESET);  
  7.   
  8. #define NUMFLAKES 10  
  9. #define XPOS 0  
  10. #define YPOS 1  
  11. #define DELTAY 2  
  12.   
  13.   
  14. #define LOGO16_GLCD_HEIGHT 16  
  15. #define LOGO16_GLCD_WIDTH  16  
  16.   
  17. #define imageWidth 96  
  18. #define imageHeight 64  
  19.   
  20. int count = 0;  
  21.   
  22. static const unsigned char PROGMEM logo16_glcd_bmp[] =  
  23. { B00000000, B11000000,  
  24.   B00000001, B11000000,  
  25.   B00000001, B11000000,  
  26.   B00000011, B11100000,  
  27.   B11110011, B11100000,  
  28.   B11111110, B11111000,  
  29.   B01111110, B11111111,  
  30.   B00110011, B10011111,  
  31.   B00011111, B11111100,  
  32.   B00001101, B01110000,  
  33.   B00011011, B10100000,  
  34.   B00111111, B11100000,  
  35.   B00111111, B11110000,  
  36.   B01111100, B11110000,  
  37.   B01110000, B01110000,  
  38.   B00000000, B00110000 };  
  39.   
  40.   
  41. const unsigned char PROGMEM test_2 [] = {  
  42. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  43. 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  44. 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  45. 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  46. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  47. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
  48. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00,
  49. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  
  50. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  51. 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  52. 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  53. 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
  54. 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF,
  55. 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF,
  56. 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00,0x00, 0x00,  0x00, 0x00,
  57. 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00,0x00, 0x00,  
  58. 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00,
  59. 0x00, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x03, 0xFF,
  60. 0x80, 0x00,0x00, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00,
  61. 0x03, 0xFF, 0x80, 0x00,0x00, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00,
  62. 0x00, 0x00, 0x07, 0xEF, 0xC0, 0x00,0x00, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00,
  63. 0x7C, 0x00, 0x00, 0x00, 0x0F, 0xE7, 0xE0, 0x00,0x00, 0x00,  0x00, 0x00, 0x3E, 0x00,
  64. 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x0F, 0xC7, 0xE0, 0x00,0x00, 0x00,  0x00, 0x00,
  65. 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x1F, 0x83, 0xF0, 0x00,0x00, 0x00,  
  66. 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF,
  67. 0x80, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x0F, 0xFF, 0xFF, 0x01,
  68. 0xFF, 0xFF,0xE0, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x0F, 0xFF,
  69. 0xFE, 0x00, 0xFF, 0xFF,0xE0, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00,
  70. 0x0F, 0xFF, 0xFE, 0x00, 0x7F, 0xFF,0xE0, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00,
  71. 0x7C, 0x00, 0x07, 0xFF, 0xFC, 0x00, 0x7F, 0xFF,0xC0, 0x00,  0x00, 0x00, 0x3E, 0x00,
  72. 0x00, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x0F,0xC0, 0x00,  0x00, 0x00,
  73. 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x1F,0x80, 0x00,  
  74. 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x1F,
  75. 0x80, 0x00,  0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF8, 0x00, 0x00,
  76. 0x00, 0x3F,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0xF8,
  77. 0x00, 0x00, 0x00, 0x3E,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
  78. 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7E,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF,
  79. 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC,0x00, 0x00,  0x00, 0x00, 0x3F, 0xFF,
  80. 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC,0x00, 0x00,  0x00, 0x00,
  81. 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x01, 0xF8,0x00, 0x00,  
  82. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x01, 0xF8,
  83. 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00,
  84. 0x00, 0xFC,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E,
  85. 0x00, 0x00, 0x00, 0xFC,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  86. 0x00, 0xFC, 0x00, 0x00, 0x00, 0x7E,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  87. 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x3E,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
  88. 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x3F,0x00, 0x00,  0x00, 0x00,
  89. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x1F,0x80, 0x00,  
  90. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x1F,
  91. 0x80, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00,
  92. 0x00, 0x0F,0xC0, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF,
  93. 0xFC, 0x00, 0x7F, 0xFF,0xC0, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  94. 0x0F, 0xFF, 0xFC, 0x00, 0x7F, 0xFF,0xE0, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  95. 0x00, 0x00, 0x0F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF,0xE0, 0x00,  0x00, 0x00, 0x00, 0x00,
  96. 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x01, 0xFF, 0xFF,0xE0, 0x00,  0x00, 0x00,
  97. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF,0xC0, 0x00,  
  98. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x83, 0xF0, 0x00,
  99. 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC7,
  100. 0xE0, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  101. 0x0F, 0xE7, 0xE0, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  102. 0x00, 0x00, 0x07, 0xEF, 0xC0, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  103. 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
  104. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x00,0x00, 0x00,  0x00, 0x00,
  105. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00,0x00, 0x00,  
  106. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00,
  107. 0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
  108. 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  109. 0x00, 0x7C, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  110. 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  111. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00, 0x00, 0x00,
  112. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  0x00, 0x00,
  113. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00,  
  114. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  115. 0x00, 0x00  
  116. };  
  117.   
  118. #if (SSD1306_LCDHEIGHT != 64)  
  119. #error("Height incorrect, please fix Adafruit_SSD1306.h!");  
  120. #endif  
  121.   
  122. void setup() {  
  123.   // put your setup code here, to run once:  
  124.    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  125.   // init done  
  126.   display.setTextColor(WHITE);  
  127.   // Show image buffer on the display hardware.  
  128.   // Since the buffer is intialized with an Adafruit splashscreen  
  129.   // internally, this will display the splashscreen.  
  130.   display.display();  
  131.   delay(2000);  
  132.   
  133.   // Clear the buffer.  
  134.   display.clearDisplay();  
  135. }  
  136.   
  137. void loop() {  
  138.   // put your main code here, to run repeatedly:  
  139.   
  140.   display.drawBitmap(0, 0,  test_2 , 128, 64, 1);  
  141.     
  142.   display.display();  
  143.   
  144. }  

Step9: 執行,以下呈現剛剛在小畫家畫的那兩張圖片

原圖


OLED呈現:



原圖:


OLED呈現:






最後再做幾個其他圖像直接做轉換的結果


































引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4133192
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:涼涼風|Arduino

留言共 8 篇留言

宇宙吃貨胖宅貓
推專業教學喵~

09-17 18:32

貓貓風 ฅ●ω●ฅ
桑Q ^^09-17 18:39
Arthur
貓貓風是工程師 [e34]

09-17 19:00

貓貓風 ฅ●ω●ฅ
[e43]09-17 19:03
做夢人
WOW~酷ㄟ[e32]

09-17 19:05

貓貓風 ฅ●ω●ฅ
這很好玩 可惜我美術不行QWQ 要不然可以用得更好看09-17 19:07
Fuwawa
好帥ㄛ. . 可是過程 好複雜

09-17 21:25

貓貓風 ฅ●ω●ฅ
其實我弄完一張不用兩分鐘09-17 22:36
鮪魚蒸蚌
這裡路過,真的是非常詳細的教學文 推推><
可以問一下如果秒數是用倒數的可以怎麼做呢

11-05 00:04

貓貓風 ฅ●ω●ฅ
用 delay 指令, 初始化時設定秒數,之後在delay後去減 1 就可以做到11-05 00:09
貓貓風 ฅ●ω●ฅ
value--;
delay(1000);11-05 00:09
鮪魚蒸蚌
喔喔原來如此,謝謝!!!!

11-05 00:16

貓貓風 ฅ●ω●ฅ
不客氣owo02-02 23:44
銀髮文明怪夜月夜
很詳細的教學 謝謝

02-02 13:32

貓貓風 ฅ●ω●ฅ
桑Q02-02 23:44
沒事來逛逛
請問一下 我在燒錄
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
他會顯示錯誤,請問我該怎麼解決?

12-18 20:31

貓貓風 ฅ●ω●ฅ
設定不對,要照你的LCD 螢幕解析度修改12-18 20:35
我要留言提醒:您尚未登入,請先登入再留言

24喜歡★s1234567 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:Arduino PM2.... 後一篇:ShadowVerse ...

追蹤私訊切換新版閱覽

作品資料夾

Charles021來此小屋參觀的觀眾
新篇小說上線,有興趣的觀眾歡迎來看(被學務主任喜歡的壞學生)的最新章節,最新頁數看更多我要大聲說昨天06:34


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】