arduino oled i2cu8glib怎么显示变量

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
U8blib - is cool library to manage with various monochrome displays. It could take the responsibility of middle-level interface with display. For example, draw lines, place text, another primitives - everything this library can. But you need to provide low-level interface to it - such as byte send, reset device, delays etc. SSD1306 OLED display - this is the guy, like this:
U8blib——是一个库来管理各种单色显示器。它是一个用来处理用户显示接口的中间层。例如,绘制线条/文本/其他元素——这个库都能做。但你需要提供底层接口,如字节发送,重置设备,延误等等。SSD1306 OLED显示器,这个家伙,像这样:
I've bought it on aliexpress, and selected I2C connected display. Also, I have SPI version. But today we'll talk about I2C only.
Ok, let's start. First - download latest version of u8glib library here:
Unpack archive, we'll see folders
src and two folders for lpc controllers. But we are cool guys and we need code for cool controllers:) Thus - we delete folders for LPC controllers, and we'll make folder inc. Into inc folder place files u8g_arm.h (need to be created manually), and u8g.h (already existed in src folder).
u8g_arm.h contains:
#ifndef _U8G_ARM_H
#define _U8G_ARM_H
#include &u8g.h&
#include &stm32f4xx_hal.h&
#define DATA_BUFFER_SIZE 1000
#define I2C_TIMEOUT 10000
#define DEVICE_ADDRESS 0x78 //device address is written on back side of your display
#define I2C_HANDLER hi2c3
extern I2C_HandleTypeDef hi2c3; // use your i2c handler
uint8_t u8g_com_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
u8g_arm.c:
#include &u8g_arm.h&
static uint8_t control = 0;
void u8g_Delay(uint16_t val)
HAL_Delay(val);
void u8g_MicroDelay(void)
for (i = 0; i & 1000; i++);
void u8g_10MicroDelay(void)
for (i = 0; i & 10000; i++);
uint8_t u8g_com_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr)
switch(msg)
case U8G_COM_MSG_STOP:
case U8G_COM_MSG_INIT:
u8g_MicroDelay();
case U8G_COM_MSG_ADDRESS:
/* define cmd (arg_val = 0) or data mode (arg_val = 1) */
u8g_10MicroDelay();
if (arg_val == 0)
control = 0;
control = 0x40;
case U8G_COM_MSG_WRITE_BYTE:
uint8_t buffer[2];
buffer[0] =
buffer[1] = arg_
HAL_I2C_Master_Transmit(&I2C_HANDLER, DEVICE_ADDRESS, (uint8_t*) buffer, 2, I2C_TIMEOUT);
case U8G_COM_MSG_WRITE_SEQ:
case U8G_COM_MSG_WRITE_SEQ_P:
uint8_t buffer[DATA_BUFFER_SIZE];
uint8_t *ptr = arg_
buffer[0] =
for (int i = 1; i &= arg_ i++)
buffer[i] = *(ptr++);
HAL_I2C_Master_Transmit(&I2C_HANDLER, DEVICE_ADDRESS, (uint8_t *)buffer, arg_val, I2C_TIMEOUT);
I'll remind you: place u8g_arm.c file into src folder, make inc folder and place there u8g.h file (without changes) and our prepared file u8g_arm.h.
Why we did this all?
U8glib must have access to low-level functions to work with display. It needs delay functions and function which could perform such operations: write byte to display, write sequence of bytes, init display etc.
Our OLED display works a little bit tricky: it has two modes of sending data. First - send command and second - send data. And how it recognises them? Before every byte, which you'll send, you need to send &instruction& to display, to told display, what type of data you'll send: data or command. If you intend to send command, you need to send [0x00 0xyour_command] array. If you want to send data, you need to send [0x40 0x_your_data] array. By the way, that blog, which I have mentioned before, made this operations incorrectly, which leads to wrong operation.
Ok, now we're ready to start CubeMX and prepare our project. I'll skip steps, where I just pick up my discoveryF4 board.
Clock configuration stay unchanged, also I've did not changed any I2C configuration:
添加u8glib库的路径
Ok, let's generate project for system workbench, and try to compile it + flash your controller. If you have not achieved success with this, problem is not in display:)
Now, we'll place our previously prepared folders &src& and &inc& into folder &your_project_folder\Drivers\u8glib\&. I do not know why, but eclipse-based SystemWorkbench tool does not see our folder, and we need to link it manually to our project. Right-click on folder &Drivers& in project explorer, New-&;Folder, then button &Advanced&, there - &Link to alternate location&(huh, difficult, maybe someone knows how to do this simpler?).
Then - right-click on project, there - properties. There we need to add our folder to includes.
Also, I've changed c language dialect, to be able write like this:
for(int i = 0; i & 10; i++)
because older standards allows only like this:
for (i = 0; i & 10; i++)
and turn off code optimization.
Also, there is another issue. U8glib has A LOT of fonts for writing strings on your display. But they has large size. So, you need to select only fonts, which you need. You can watch them here:
. And then, I'll select only two by deleting unnecessary fonts in file u8g_font_data.c. Or, you can just comment. Idea is to left only this per font:
#include &u8g.h&
const u8g_fntpgm_uint8_t u8g_font_profont10[2560] U8G_FONT_SECTION(&u8g_font_profont10&) = {
/*you font, i've not placed this*/
}; Ok now we'll open our main.c
and modify it like this:
/* Includes ------------------------------------------------------------------*/
#include &stm32f4xx_hal.h&
/* USER CODE BEGIN Includes */
#include &u8g_arm.h&
/* USER CODE END Includes */
/* Private variables ---------------------------------------------------------*/
I2C_HandleTypeDef hi2c3; /*this is our handler, you need to place it in your u8g_arm.h file!!!!!
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
static u8g_t u8g;
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C3_Init(void);
/* USER CODE BEGIN PFP */
/* Private function prototypes -----------------------------------------------*/
/* USER CODE END PFP */
/* USER CODE BEGIN 0 */
Function which responds for drawing
void draw(void)
u8g_SetFont(&u8g,u8g_font_profont10);//set current font
u8g_DrawStr(&u8g, 2, 12, &Hello!&);//write string - you set coordinates and string
u8g_DrawBox(&u8g, 30, 30, 35, 35);//draw some box
/* USER CODE END 0 */
int main(void)
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration----------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C3_Init();
/* USER CODE BEGIN 2 */
u8g_InitComFn(&u8g, &u8g_dev_ssd_i2c, u8g_com_hw_i2c_fn); //here we init our u8glib driver
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
//this loop correspond of drawing
u8g_FirstPage(&u8g);
} while ( u8g_NextPage(&u8g) );
u8g_Delay(10);
/* USER CODE END 3 */
/* UNCHANGED PART OF YOUR CODE */
Do not forget to place your i2c handler to u8g_arm.h file!
u8g_InitComFn(&u8g, &u8g_dev_ssd_i2c, u8g_com_hw_i2c_fn); - here we init our driver and tell it, what function if responsible for low-level communication with our display.
Everything you want to draw you place to draw() function.
Code here:
Tadam! Start debug, and we see wonderful picture with square and little text:)
The only issue, which I've found - there is some garbage at last pixel in row, and now I do not know how to fix this. I hope, I'll found solution, and tell you. Or, you'll find and tell me:)
文中相关u8glib单色库在本站百度云中有下载:文件名u8glib单色屏库.zip
本文演示代码在本站百度云有下载:文件名SSD1306_I2C-master.zip
请问百度云地址在哪呢
@user 首页顶部 [资源分享]
他的编译环境不是MDK,我用cube生成MDK,如何在添加文件,为什么显示不出来?
是然后添加了文件,显示不出来
要回复文章请先或如果说,什么是诞生的喜悦,那一定是另一物的死去.
来自森亮号航海见识 {SLboat I}
SH1106驱动12864的屏幕
它可以使用来支持,但是会多出一些白边.它的引起原因是
SH1106显示屏是132*64的寄存器,操作时请按照132*64来操作,若按照128*64操作,屏幕右侧的边缘会出现一条亮线。-制造者
使用的一个屏幕是兼容的1.3寸OLED,具体的型号是[QG-2864KLBLG01]
这是最源初的
[思索]如果能有更快的方式记录纸上的见识,那么的确这将是非常有趣的!
源码补丁它的支持.提交一个不补丁?
注释,初始化那些东西的含义...注释的艺术
是否有直接中文字符串解析的支持呢?
描记修改细节
提供128x64的写支持,一个单独的函数存在.
[它工作了!]写入的内容从1开始,而不是0,参考它的界面.
进行十日的每日30分钟探索
本次航行最后补充一天,20分钟,修复5秒问题,结束离开.
由于计算间隔的毫秒转换失误,它被修好了!!!
arduino的分类似乎很糟糕,而实际似乎很多的都是,对此能做什么呢?或许加强连接,优化稳固,增加审核过,细化分类?或许的,就停下来一小会,任它存在而延续好了.
T08:50:27 (CST)
总结航行:非常有趣,见识了意外的字符串!尽管开始看起来不是去到这里!哈!
[数学家]显示倒计时,5秒后显示答案,完善Arduino随机数库...
开始了,像是没有什么特别要进行的...
T10:58:28 (CST)
那就随意的探索,转悠转悠...
不该过于在Arduino就小看它的强大,它总是无处不再的...
在Arduino里游荡..构建,等待时间的答案...
如果能获得Arduino的编译日志肯定不错,能又话它的编译速度也很不错...用在EmbedXCode里,或许不用它?或许太远了?
当随着熟悉,事情总是回到逻辑,判断,标记,执行...
回到最基础的数据结构,而一切好像总是等待那里,指向着同样的事情...
[数学家]需要随机数数字![数学家]需要拼凑字符串,或许还需要转换的从数字得来呢?天阿,它不需要更多的了,它就需要这么多多就够了!
表述和提及问题总是有趣的,你需要耐心,需要慢慢的展开
完成了源码注释!到这里看起来就全部完成了
尝试制造[数学家]
完成了所有的初始化的注释
T09:41:54 (CST)
[等待]将所有的推送进去git库。
T09:47:05 (CST)
半小时探索,继续注释,注释,似乎太多注释了?
T09:37:53 (CST)
哈,一个早上的时间,继续注释化代码...
T10:16:08 (CST)
为啥偏要某种形式?那么去它的如何!
注释初始化代码,30分钟,今天就到这里,哈!
该建立个分支才好...
注释的更详细?文档一般?
T08:57:01 (CST)
[回顾]这里见识不就是提到了起始列的问题嘛
[接着]接下来是它的一些初始化代码注释,然后加上惠特的具体型号,显示屏的型号,它的点阵兼容模式图片,然后告以完成.
T13:53:49 (CST)
整合,打包起来...
意外的!它工作了!!
T08:10:20 (CST)
重新改名了函数,但是不认..是该有点焦虑了吗?时间过去了30分钟,现在走向45分钟...
试图制造一个新的sh1106,但是死活都不认,而且似乎自带的函数太多了...
几乎都是它,都是它.....那么探索开始了
T08:10:20 (CST)
它工作起来了!!!
接着还有一个倒转的问题,此时减少宽度
#define WIDTH 128 //SH1106 -- 132x64, different from SSD1306
再次不可自制的探索继续...
找到了初始化的代码,通过+2可以正常的x对应
static const uint8_t u8g_dev_ssd_data_start[] PROGMEM = {
U8G_ESC_ADR(0),
/* instruction mode */
U8G_ESC_CS(1),
/* enable chip */
/* set upper 4 bit of the col adr to 0 */
//设置2强制初始化地址
/* set lower 4 bit of the col adr to 4
U8G_ESC_END
/* end of sequence */
u8g.h看起来是一切的核心,聚集点...公共点,而u8glib.h则是更高级一点的.
一种调试方法,看起来是极为需要的,没有动态调试器,看起来只能修改→测试→再修改→再测试
看起来[u8g_dev_ssd_2x_fn]是非常原始的内存写入...这里换算可是个噩梦被...
使用TextExpander建构这些文件地址或许是好主意
探索20分钟结束
T09:49:10 (CST)
阻碍,似乎完全不得头绪,[u8g.drawStr]从哪里呢?
今日开始咯,有点晃晃乱乱的,不是太好的征兆!
关于初始化,文档里看起来完全有提到!
起源日,这是第一日,最早的产生了它的动机.
试着最初的分离一个探索性的项目!
看起来见识SH1106的真正好处是提供了ACK,这是原生I2C的一部分,所以不再需要模拟变异的I2C(SSD1306)来执行.但是修改特定的SPI方法,看起来也可以让SSD1306兼容?是吗?...
官方突然更新见识了也!
第一个C++有关的修改
implemented & documentation done
testing required (ssd1306)
my post from here:
I think your display really has a SH1106 controller. It is similar, but not identical to the SSD1306.
1. Locate file u8g_dev_ssd.c
2. Find line 183:
  0x000,
/* set lower 4 bit of the col adr to 4
3. Change this to
  0x002,
/* set lower 4 bit of the col adr to 4
Create new device for this.
V2.0 功能说明:
这个版本是在Adafruit库的基础上修改而来的,因为老版本的I2C版屏没有ACK信号返回,不能使用wire来进行I2C通信,所以就用的模拟I2C通信,在模拟I2C驱动程序的基础上,调用了Adafruit_GFX,使得2.0的库能够像Adafruit的库拥有一样的功能,比如说画点、画线、画圆、调整字体大小。
但这个版本砍掉了显示中文的功能,要显示中文的话,可以参考V1.0的版本。
使用方法:
请将“Adafruit_ssd1306syp”文件夹复制到x:\arduino-1.5.5\libraries目录,重启Arduino IDE;
ssd1306syp_test是基于Arduino UNO的示例程序……正确接线并运行即可。
PS. V2.0应该已是最终版的了,因为惠特自动化出了最新版I2C通信的OLED屏,已经能完美支持源生的Adafruit或u8glib库了!
SH1106与常见的SSD1306功能差不多,SH1106的寄存器大小是132*64的(写数据时按132*64操作),且驱动能力更强,看上去更明了。
使用SSD1306的初始化代码可以点亮SH1106的屏,但这样做时钟不完美!我修改了一份u8glib的库文件。
以下是[Arduino u8glib库/SH1106支持]所有用到的引用信息,向这些伟大的家伙致敬:
, 见识于 16:19
, 见识于 8:35
, 见识于 22:15
, 见识于 8:34
:隐藏分类:u8glib中文显示 - 嵌入式系统论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
u8glib中文显示
09:22:36  
在麦知项目中,使用u8glib+m2tklib负责在oled1.3上做显示,屏的控制器是sh1106。
根据MakerLab创客实验室的文章,可以显示中文,但是按照他的说法,将末尾的一位删掉,尽管可以持续显示后面的汉字,但实际上字会缺一小部分,而他的完整例子中的字体好像又没问题。
使用bdf2u8g生成一个汉字:
const u8g_fntpgm_uint8_t c11[47] U8G_SECTION(&.progmem.c11&) = {
&&0,13,13,255,254,0,0,0,0,0,136,136,0,11,255,0,
&&0,11,12,24,12,0,255,0,128,68,160,34,192,128,128,87,
&&224,20,32,39,224,36,32,199,224,68,32,68,32,68,224};
复制代码
其数据格式,在u8g_font.c中有描述,如下:
/*
&&... instead the fields of the font data structure are accessed directly by offset
&&font information
&&offset
&&0& && && && & font format
&&1& && && && & FONTBOUNDINGBOX width& && && &&&unsigned
&&2& && && && & FONTBOUNDINGBOX height& && && & unsigned
&&3& && && && & FONTBOUNDINGBOX x-offset& && && &signed
&&4& && && && & FONTBOUNDINGBOX y-offset& && &&&signed
&&5& && && && & capital A height& && && && && && && && && && &&&unsigned
&&6& && && && & start 'A'
&&8& && && && & start 'a'
&&10& && && && &encoding start
&&11& && && && &encoding end
&&12& && && && &descent 'g'& && && && && && && &negative: below baseline
&&13& && && && &font max ascent
&&14& && && && &font min decent& && && && & negative: below baseline
&&15& && && && &font xascent
&&16& && && && &font xdecent& && && && & negative: below baseline
&&
*/复制代码
这里面说明字体通用描述是17个字节。
对照生成的数据,可以得到每个字节的对应解释。
0 - format 0
13 - 字体外框宽度
13 - 字体外框高度
255 - 字体外框 x偏移 -1
254 - 字体外框 y偏移 254
实际上,生成字体数据的第2行,首位置的0是 第17字节数据: 字体x下降;若删掉每行的末尾数字,则 0 变成每个字的末尾像素,显示就为缺角。
第2行数据,0,11,12,24,12,0,255,0,128,68,160,34,192,128,128,87 是对字进行描述。
/*
format 0
& & glyph information
& & offset
& & 0& && && && & BBX width& && && && && && && && && && && && && &unsigned
& & 1& && && && & BBX height& && && && && && && && && && && && &&&unsigned
& & 2& && && && & data size& && && && && && && && && && && && && &unsigned& & (BBX width + 7)/8 * BBX height
& & 3& && && && & DWIDTH& && && && && && && && && && && && && && &signed
& & 4& && && && & BBX xoffset& && && && && && && && && && && && &signed
& & 5& && && && & BBX yoffset& && && && && && && && && && && && &signed
*/复制代码
很好的看到,11是字宽, 12是字高, 24是字数据的尺寸,通过 (11+7)/8×12 ≈24, 后面的数据长度与此相符。因为数是除不尽的,所以末尾224,0xe0是高字节用来表示像素。
这次遇到的问题不算太难,被一行16个数据的表现形式迷惑。当然,主要原因还是对数据组织结构不了解,不知道每行的意义。 了解以后,自然很轻松的找到解决办法。
第32~127的部分,直接用命令生成:
bdf2u8g.exe -b 32 -e 127 abc-12.bdf abc-12 abc-12.c复制代码对需要的汉字,使用python生成,在txt中填入汉字和hex unicode:
确 786E
消 6D88复制代码命令行调用:
G:\17\u&c3 a.txt复制代码
c3.py代码如下,python2.7.10:
# encoding: utf-8
import os
import sys
import re
def get_c(list):& & & &
& & & & # a 是16进制
& & & & # font = & & & & 'unifont'
& & & & #font = 'fireflyR11'
& & & & font = 'abc-12'
& & & & command = &bdf2u8g.exe -b {b} -e {e} {sub} %s.bdf c11 {out}& % font
& & & &
& & & & word, code = list&&# 得到字,编码
& & & & out_file = 'c11_%s.c' % code&&# 输出文件名后缀, 前缀默认为c11
& & & &
& & & & code = int(code, 16)
& & & & page = code / 0x80&&# 页数
& & & & begin = code & 0x00ff
& & & & end = begin
& & & &
& & & & sub_command = '-%s %s'
& & & &
& & & & if begin &&&0x7F:&&# 使用-l 还是-u
& & & & & & & & sub_command = sub_command % ('u', page)
& & & & else:
& & & & & & & & sub_command = sub_command % ('l', page)
& & & &
& & & & command = command.format(b=begin, e=end, sub=sub_command, out=out_file)
& & & &
& & & & print(command)
& & & & os.system(command)&&# 执行命令
& & & &
& & & & # 读取.c文件进行合并
& & & & # 提取{}中内容
& & & & # 正则, \{([^\}]+)\}
& & & & if os.path.exists(out_file):
& & & & & & & & lines = open(out_file).read()
& & & & & & & & pattern = r'\{([^\}]+)\}'
& & & & & & & & m = re.search(pattern, lines)
& & & & & & & &
& & & & & & & & if m:
& & & & & & & & & & & & return word, m.groups()[0].strip()
& & & & & & & & else:
& & & & & & & & & & & & return None
def main():
& & & & if len(sys.argv) != 2:
& & & & & & & & print(u'请输入汉字txt')
& & & & & & & & return
& & & & # 打开txt
& & & & if not os.path.exists(sys.argv[1]):
& & & & & & & & print(u&文件 %s 不存在& % sys.argv[1])
& & & & & & & & return
& & & & # 读取行
& & & & head = ''
& & & & # result = {}
& & & &
& & & & lines = open(sys.argv[1]).readlines()
& & & & out_file = os.path.splitext(sys.argv[1])[0]+'_cvt.c'
& & & &
& & & & No = 0x80;
& & & &
& & & & try:
& & & & & & & & f = open(out_file, 'w')
& & & & & & & & f.write('#include &u8g.h& \nconst u8g_fntpgm_uint8_t c11[55] U8G_SECTION(&.progmem.c11&) = {\n')
& & & & & & & & write_head = True
& & & & & & & & first_word = True
& & & & & & & & for i, line in enumerate(lines):
& & & & & & & & & & & & if line:
& & & & & & & & & & & & & & & & line = line.split()
& & & & & & & & & & & & & & & & list = [line[0], line[1]]&&# ['\xe5\xae\xa2', '5BA2']
& & & & & & & & & & & & & & & & w, c = get_c(list)
& & & & & & & & & & & & & & & & c = c.split()
& & & & & & & & & & & & & & & & del c[0]&&# 删掉第1行
& & & & & & & & & & & & & & & & pos_first = c[0].index(',')
& & & & & & & & & & & & & & & & c[0] = c[0][pos_first+1:]&&# 删掉第1个零,字体结构的第17字节
& & & & & & & & & & & & & & & & c[1] = c[1] + ','&&# 补充末尾逗号
& & & & & & & & & & & & & & & & # result[w] = c
& & & & & & & &
& & & & & & & & & & & & & & & & # 写出到文件
& & & & & & & & & & & & & & & & f.write('// ' + line[0] + '\t' + line[1] + '\t\t' +&&hex(0x80 + i) + '\n')
& & & & & & & & & & & & & & & & for v in c:
& & & & & & & & & & & & & & & & & & & & f.write(v + '\n')
& & & & & & & & & & & & & & & & & & & &
& & & & & & & & f.write('};')& & & & & & & & & & & & & & & &
& & & & & & & & print(u'写%s文件成功。' % out_file)
& & & & except IOError:
& & & & & & & & print(u'写%s文件失败。' % out_file)
& & & & f.close()
& & & &
if __name__ == '__main__':
& & & & main()
& & & & 复制代码
生成的文件如下:
// 确& & & & 786E& & & & & & & & 0x84&blockquote&11,11,22,12,0,255,2,0,243,192,36,64,43,224,114,复制代码将括号内容附加到127以后。
在程序中引用:
// 第1行:状态, 档位
const char *stage = &\x80\x81&;
const char *power_level = &&;
M2_LABELPTR(el_home_stage, &f0&, &stage);&&// 显示工作阶段复制代码
汉字显示效果,结尾的像素是完整的,而且可以连续显示:
结果 2.jpg (19.06 KB, 下载次数: 1)
09:15 上传
14个问题&&&&&&&&37662个浏览
7个问题&&&&&&&&37391个浏览
14个问题&&&&&&&&2857个浏览
ADAS相比较无人驾驶有望在短期内率先商业化普及,是汽车领域非常重要的产品革新。专家将解答:
1、汽车智能化开发经验和思路
2、ADAS相关技术难点
3、汽车智能化的产业痛点是什么?
每天选一个需要解决的问题,大家一起来帮忙。
授人玫瑰,手有余香
本次讲解答的问题例举:
1、NB-IoT有哪些技术特点和难点?
2、NB-IoT技术对物联网市场将带来什么样的影响。
3、NB-IoT物理层有哪些组成部分?
4、NB-IoT技术如何实现低功耗?
Powered by>> 使用U8GLIB库或SPI驱动OLED液晶屏
使用U8GLIB库或SPI驱动OLED液晶屏
所属分类:
下载地址:
U8glib.rar文件大小:906.93 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
开发板 Arduino Mega 2560,Arduino版本1.6.4,U8GLIB库版本为1.18.0
定义U8GLIB_SSD u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS =10, A0 = 9&
则库文件正常运行,且能显示
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
A2Printer.ino3.67 kB14-07-15 10:05
&A2Printer&0.00 B06-07-16 22:14
Bitmap.ino12.53 kB14-07-15 10:05
&Bitmap&0.00 B06-07-16 22:14
Chess.ino13.66 kB14-07-15 10:05
&Chess&0.00 B06-07-16 22:14
Console.ino14.89 kB14-07-15 10:05
&Console&0.00 B06-07-16 22:14
F.ino12.83 kB14-07-15 10:05
&F&0.00 B06-07-16 22:14
FPS.ino19.95 kB14-07-15 10:05
&FPS&0.00 B06-07-16 22:14
GraphicsTest.ino15.66 kB14-07-15 10:05
&GraphicsTest&0.00 B06-07-16 22:14
HelloWorld.ino12.87 kB14-07-15 10:05
&HelloWorld&0.00 B06-07-16 22:14
Menu.ino14.98 kB14-07-15 10:05
&Menu&0.00 B06-07-16 22:14
PrintTest.ino11.79 kB14-07-15 10:05
&PrintTest&0.00 B06-07-16 22:14
Rotation.ino13.00 kB14-07-15 10:05
&Rotation&0.00 B06-07-16 22:14
Scale.ino13.04 kB14-07-15 10:05
&Scale&0.00 B06-07-16 22:14
TextRotX.ino12.93 kB14-07-15 10:05
&TextRotX&0.00 B06-07-16 22:14
Touch4WSetup.ino16.45 kB14-07-15 10:05
&Touch4WSetup&0.00 B06-07-16 22:14
Touch4WTest.ino16.26 kB14-07-15 10:05
&Touch4WTest&0.00 B06-07-16 22:14
U8gLogo.ino13.69 kB14-07-15 10:05
&U8gLogo&0.00 B06-07-16 22:14
XBM.ino13.22 kB14-07-15 10:05
&XBM&0.00 B06-07-16 22:14
&examples&0.00 B06-07-16 22:14
ChangeLog6.88 kB14-07-15 10:05
733.00 B14-07-15 10:05
&extras&0.00 B06-07-16 22:14
library.properties425.00 B14-07-15 10:05
3.82 kB14-07-15 10:05
1.68 kB14-07-15 10:05
61.91 kB14-07-15 10:05
90.18 kB14-07-15 10:05
4.01 kB14-07-15 10:05
9.46 kB14-07-15 10:05
4.39 kB14-07-15 10:05
4.48 kB14-07-15 10:05
3.33 kB14-07-15 10:05
4.61 kB14-07-15 10:05
2.15 kB14-07-15 10:05
7.42 kB14-07-15 10:05
11.34 kB14-07-15 10:05
3.97 kB14-07-15 10:05
6.95 kB14-07-15 10:05
5.14 kB14-07-15 10:05
4.89 kB14-07-15 10:05
5.94 kB14-07-15 10:05
8.53 kB14-07-15 10:05
7.43 kB14-07-15 10:05
8.53 kB14-07-15 10:05
3.95 kB14-07-15 10:05
8.05 kB14-07-15 10:05
11.93 kB14-07-15 10:05
5.78 kB14-07-15 10:05
4.40 kB14-07-15 10:05
5.11 kB14-07-15 10:05
5.66 kB14-07-15 10:05
4.77 kB14-07-15 10:05
3.77 kB14-07-15 10:05
12.71 kB14-07-15 10:05
7.24 kB14-07-15 10:05
5.71 kB14-07-15 10:05
1.83 kB14-07-15 10:05
3.05 kB14-07-15 10:05
4.25 kB14-07-15 10:05
3.77 kB14-07-15 10:05
3.00 kB14-07-15 10:05
6.36 kB14-07-15 10:05
6.67 kB14-07-15 10:05
3.13 kB14-07-15 10:05
3.69 kB14-07-15 10:05
8.39 kB14-07-15 10:05
12.57 kB14-07-15 10:05
4.08 kB14-07-15 10:05
5.41 kB14-07-15 10:05
5.31 kB14-07-15 10:05
5.31 kB14-07-15 10:05
5.42 kB14-07-15 10:05
8.01 kB14-07-15 10:05
2.07 kB14-07-15 10:05
5.64 kB14-07-15 10:05
5.54 kB14-07-15 10:05
3.89 kB14-07-15 10:05
11.26 kB14-07-15 10:05
16.45 kB14-07-15 10:05
7.26 kB14-07-15 10:05
5.43 kB14-07-15 10:05
11.98 kB14-07-15 10:05
11.93 kB14-07-15 10:05
9.67 kB14-07-15 10:05
9.57 kB14-07-15 10:05
9.44 kB14-07-15 10:05
9.26 kB14-07-15 10:05
11.14 kB14-07-15 10:05
20.20 kB14-07-15 10:05
12.35 kB14-07-15 10:05
8.40 kB14-07-15 10:05
7.74 kB14-07-15 10:05
5.98 kB14-07-15 10:05
8.28 kB14-07-15 10:05
9.66 kB14-07-15 10:05
5.60 kB14-07-15 10:05
7.84 kB14-07-15 10:05
13.67 kB14-07-15 10:05
6.71 kB14-07-15 10:05
5.88 kB14-07-15 10:05
5.96 kB14-07-15 10:05
7.08 kB14-07-15 10:05
7.03 kB14-07-15 10:05
7.12 kB14-07-15 10:05
7.10 kB14-07-15 10:05
4.52 kB14-07-15 10:05
7.80 kB14-07-15 10:05
7.67 kB14-07-15 10:05
6.65 kB14-07-15 10:05
10.88 kB14-07-15 10:05
4.27 kB14-07-15 10:05
4.34 kB14-07-15 10:05
6.28 kB14-07-15 10:05
6.11 kB14-07-15 10:05
7.79 kB14-07-15 10:05
35.68 kB14-07-15 10:05
4.29 MB14-07-15 10:05
2.41 kB14-07-15 10:05
14.67 kB14-07-15 10:05
2.17 kB14-07-15 10:05
4.29 kB14-07-15 10:05
5.12 kB14-07-15 10:05
5.40 kB14-07-15 10:05
5.32 kB14-07-15 10:05
5.10 kB14-07-15 10:05
4.35 kB14-07-15 10:05
5.33 kB14-07-15 10:05
9.37 kB14-07-15 10:05
5.25 kB14-07-15 10:05
4.27 kB14-07-15 10:05
4.71 kB14-07-15 10:05
4.85 kB14-07-15 10:05
4.01 kB14-07-15 10:05
4.69 kB14-07-15 10:05
6.57 kB14-07-15 10:05
7.76 kB14-07-15 10:05
5.00 kB14-07-15 10:05
12.51 kB14-07-15 10:05
5.19 kB14-07-15 10:05
4.05 kB14-07-15 10:05
1.85 kB14-07-15 10:05
1.91 kB14-07-15 10:05
4.45 kB14-07-15 10:05
&clib&0.00 B06-07-16 22:15
2.73 kB14-07-15 10:05
56.23 kB14-07-15 10:05
&src&0.00 B06-07-16 22:14
&U8glib&0.00 B06-07-16 22:14
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载U8glib.rar
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:103.382ms - init:0.2;find:3.0;t:1.9;tags:0.4;related:54.2;comment:0.2; 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧}

我要回帖

更多关于 arduino u8glib库下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信