通讯接口说明:

1、若使用HID设备进行通讯,通过HID的中断端点发送或接收数据
2、若使用串口进行通讯,则直接通过串口发送或接收数据
3、发送和接收数据参考每个功能的命令格式


STC32G-调试接口示例代码(USB-HID-版本)
STC32G-调试接口示例代码(普通串口版本)
STC32G示波器USB-CDC送电脑显示


7段数码管接口 DIP40封装LED接口 DIP64封装LED接口 LCD12864接口
OLED12864接口 OLED320240接口 OLED480320接口 OLED640480接口
虚拟键盘接口 数字示波器接口 串口绘图接口 FFT绘图接口



7段数码管接口
 

功能1: 在数码管上显示字符串
命令格式: 37H 53H 45H 47H 53H 00H 00H 00H s1 s2 s3 s4 ...
命令说明:  
1~4字节: 命令头
5字节: 功能选择(53H显示字符串)
6~8字节: 保留
9~n字节: 字符的ASCII码,字符串必须以‘\0’结尾
示例:

发送37H 53H 45H 47H 53H 00H 00H 00H 31H 32H 2EH 33H 00H

  在数码管上会显示“12.3”
库函数声明: int SEG7_ShowString(const char *fmt, ...);
库函数调用:

SEG7_ShowString("%08lx", 0x1234abcdL);

 

功能2: 在数码管上显示4字节长整型数
命令格式: 37H 53H 45H 47H 4CH x1 x2 00H d1 d2 d3 d4
命令说明:  
1~4字节: 命令头
5字节: 功能选择(4CH显示长整型数)
6字节: 数据存储格式(0:LE, 1:BE)
7字节: 显示进制(02H:二进制, 0AH:十进制, 10H:十六进制)
8字节: 保留
9~12字节: 长整型数的存储数据
示例1:

发送37H 53H 45H 47H 4CH 00H 10H 00H 12H 34H 56H 78H

  在数码管上会显示78564312
示例2: 发送37H 53H 45H 47H 4CH 01H 10H 00H 12H 34H 56H 78H
  在数码管上会显示12345678
库函数声明: void SEG7_ShowLong(long n, char radix);//n:长整型数 radix:进制
库函数调用:

SEG7_ShowLong(0x98765432, 16);

注:

当超出显示范围时自动转为科学计数法进行显示

 

功能3: 在数码管上显示IEEE754格式单精度浮点数
命令格式: 37H 53H 45H 47H 44H x1 00H 00H d1 d2 d3 d4
命令说明:  
1~4字节: 命令头
5字节: 功能选择(44H显示单精度浮点数)
6字节: 数据存储格式(0:LE, 1:BE)
7~8字节: 保留
9~12字节: 单精度浮点数的存储数据
示例1: 发送37H 53H 45H 47H 44H 00H 00H 00H D0H 0FH 49H 40H
  在数码管上会显示3.14159
示例2: 发送37H 53H 45H 47H 44H 01H 00H 00H 40H 49H 0FH D0H
  在数码管上会显示3.14159
库函数声明: void SEG7_ShowFloat(float f);//f:浮点数
库函数调用: SEG7_ShowFloat(3.14159);
注:

当超出显示范围时自动转为科学计数法进行显示

 

功能4: 在数码管上直接显示所给的段码
命令格式: 37H 53H 45H 47H 43H 00H 00H 00H d1 d2 d3 d4 d5 d6 d7 d8
命令说明:  
1~4字节: 命令头
5字节: 功能选择(43H显示段码)
6~8字节: 保留
9~16字节: 8个数码管的段码
示例: 发送37H 53H 45H 47H 43H 00H 00H 00H 3FH 06H 5BH 4FH 66H 6DH 7DH 27H
  在数码管上会显示01234567
库函数声明: void SEG7_ShowCode(BYTE *cod);//cod:段码
库函数调用: BYTE cod[8];
cod[0] = 0x3f;
cod[1] = 0x06;
cod[2] = 0x5b;
cod[3] = 0x4f;
cod[4] = 0x66;
cod[5] = 0x6d;
cod[6] = 0x7d;
cod[7] = 0x27;
SEG7_ShowCode(cod);
常用段码表:
字符 段码 字符 段码 字符 段码 字符 段码
0 0x3f 5 0x6d A 0x77 F 0x71
1 0x06 6 0x7d b 0x7c 空格 0x00
2 0x5b 7 0x27 C 0x39    
3 0x4f 8 0x7f d 0x5e    
4 0x66 9 0x6f E 0x79    

 



DIP40封装LED接口
 

功能: 控制DIP40的各个管脚上LED的状态
命令格式: 4CH 45H 44H 28H x1 x2 px ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: P0~P5端口的屏蔽位(bit0:P0, bit1:P1, ...)
7~字节: P0~P5端口的状态
示例1: 发送4CH 45H 44H 28H 02H 01H 55H
  修改P0口的状态为55H
示例2: 发送4CH 45H 44H 28H 03H 09H 55H AAH
  修改P0口的状态为55H,P3口为AAH
示例3: 发送4CH 45H 44H 28H 05H 0FH 11H 22H 33H 44H
  修改P0口的状态为11H,P1口为22H,P2口为33H,
P3口为44H,P4口为55H,P5口为66H
库函数声明: void LED40_SendData(BYTE *dat, BYTE size);
库函数调用: BYTE cod[8];
cod[0] = 0x0f;
cod[1] = 0x12;
cod[2] = 0x34;
cod[3] = 0x56;
cod[4] = 0x78;
LED40_SendData(cod, 5);

 



DIP64封装LED接口
 

功能: 控制DIP64的各个管脚上LED的状态
命令格式: 4CH 45H 44H 40H x1 x2 px ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: P0~P7端口的屏蔽位(bit0:P0, bit1:P1, ...)
7~字节: P0~P7端口的状态
示例1: 发送4CH 45H 44H 40H 02H 01H 55H
  修改P0口的状态为55H
示例2: 发送4CH 45H 44H 40H 03H 09H 55H AAH
  修改P0口的状态为55H,P3口为AAH
示例3: 发送4CH 45H 44H 40H 09H FFH 11H 22H 33H 44H 55H 66H 77H 88H
  修改P0口的状态为11H,P1口为22H,P2口为33H,
P3口为44H,P4口为55H,P5口为66H,P6口为77H,P7口为88H
库函数声明: void LED64_SendData(BYTE *dat, BYTE size);
库函数调用: BYTE cod[8];
cod[0] = 0x0f;
cod[1] = 0x12;
cod[2] = 0x34;
cod[3] = 0x56;
cod[4] = 0x78;
LED64_SendData(cod, 5);

 



LCD12864接口

本接口模拟的是以ST7920为控制芯片的LCD12864,器件本身自带字库,
所以本接口也相应的加入了字库的支持

功能1: 关闭LCD12864的显示
命令格式: 4CH 43H 44H 80H 02H A0H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A0H显示功能)
7字节: 固定为00
示例: 发送4CH 43H 44H 80H 02H A0H 00H
  关闭LCD12864的显示
库函数声明: void LCD12864_DisplayOff();
库函数调用: LCD12864_DisplayOff();

 

功能2: 打开LCD12864的显示
命令格式: 4CH 43H 44H 80H 02H A0H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A0H显示功能)
7字节: 固定为01
示例: 发送4CH 43H 44H 80H 02H A0H 01H
  打开LCD12864的显示
库函数声明: void LCD12864_DisplayOn();
库函数调用: LCD12864_DisplayOn();

 

功能3: 隐藏LCD12864的光标
命令格式: 4CH 43H 44H 80H 02H A1H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A1H光标功能)
7字节: 固定为00
示例: 发送4CH 43H 44H 80H 02H A1H 00H
  隐藏LCD12864的光标
库函数声明: void LCD12864_CursorOff();
库函数调用: LCD12864_CursorOff();

 

功能4: 显示LCD12864的光标
命令格式: 4CH 43H 44H 80H 02H A1H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A1H光标功能)
7字节: 固定为01
示例: 发送4CH 43H 44H 80H 02H A1H 01H
  显示LCD12864的光标
库函数声明: void LCD12864_CursorOn();
库函数调用: LCD12864_CursorOn();

 

功能5: 光标向左移动一个单位(16个像素)
命令格式: 4CH 43H 44H 80H 02H A2H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A2H光标移动功能)
7字节: 固定为00
示例: 发送4CH 43H 44H 80H 02H A2H 00H
  LCD12864的光标向左移动一个单位
库函数声明: void LCD12864_CursorMoveLeft();
库函数调用: LCD12864_CursorMoveLeft();

 

功能6: 光标向右移动一个单位(16个像素)
命令格式: 4CH 43H 44H 80H 02H A2H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A2H光标移动功能)
7字节: 固定为01
示例: 发送4CH 43H 44H 80H 02H A2H 01H
  LCD12864的光标向右移动一个单位
库函数声明: void LCD12864_CursorMoveRight();
库函数调用: LCD12864_CursorMoveRight();

 

功能7: 光标回到左上角初始位置
命令格式: 4CH 43H 44H 80H 02H A2H 02H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A2H光标移动功能)
7字节: 固定为02
示例: 发送4CH 43H 44H 80H 02H A2H 02H
  LCD12864的光标回到左上角初始位置
库函数声明: void LCD12864_CursorReturnHome();
库函数调用: LCD12864_CursorReturnHome();

 

功能8: LCD12864向左滚动一个单位(16个像素)
命令格式: 4CH 43H 44H 80H 02H A3H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A3H滚屏功能)
7字节: 固定为00
示例: 发送4CH 43H 44H 80H 02H A3H 00H
  LCD12864的屏幕向左滚动一个单位
库函数声明: void LCD12864_ScrollLeft();
库函数调用: LCD12864_ScrollLeft();

 

功能9: LCD12864向右滚动一个单位(16个像素)
命令格式: CH 43H 44H 80H 02H A3H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A3H滚屏功能)
7字节: 固定为01
示例: 发送4CH 43H 44H 80H 02H A3H 01H
  LCD12864的屏幕向右滚动一个单位
库函数声明: void LCD12864_ScrollRight();
库函数调用: LCD12864_ScrollRight();

 

功能10: LCD12864向上滚动
命令格式: 4CH 43H 44H 80H 03H A3H 02H x1
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A3H滚屏功能)
7字节: 固定为02
8字节: 滚动像素个数
示例: 发送4CH 43H 44H 80H 03H A3H 02H 10H
  LCD12864的屏幕向上滚动16个像素
库函数声明: void LCD12864_ScrollUp(BYTE line);//line:滚动像素个数
库函数调用: LCD12864_ScrollUp(0x10);

 

功能11: LCD12864显示字符串超出一行时自动丢弃
命令格式: 4CH 43H 44H 80H 02H A4H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A4H换行功能)
7字节: 固定为00
示例: 发送4CH 43H 44H 80H 02H A4H 00H
  关闭自动换行
库函数声明: void LCD12864_AutoWrapOff();
库函数调用: LCD12864_AutoWrapOff();

 

功能12: LCD12864显示字符串超出一行时自动换行
命令格式: 4CH 43H 44H 80H 02H A4H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A4H换行功能)
7字节: 固定为01
示例: 发送4CH 43H 44H 80H 02H A4H 01H
  开启自动换行功能
库函数声明: void LCD12864_AutoWrapOn();
库函数调用: LCD12864_AutoWrapOn();

 

功能13: 反白显示指定的行
命令格式: 4CH 43H 44H 80H 02H A5H x1
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A5H反白显示)
7字节: 指定行(范围0~3)
示例: 发送4CH 43H 44H 80H 02H A5H 02H
  第2行反白显示
库函数声明: void LCD12864_ReverseLine(BYTE line);//line:行数
库函数调用: LCD12864_ReverseLine(2);

 

功能14: 清除显示
命令格式: 4CH 43H 44H 80H 01H A6H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A6H清除显示)
示例: 发送4CH 43H 44H 80H 01H A6H
  清除显示
库函数声明: void LCD12864_DisplayClear();
库函数调用: LCD12864_DisplayClear();

 

功能15: 在LCD12864上显示ASCII码和简体中文字符
命令格式: 4CH 43H 44H 80H 03H A7H x y
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A7H显示字符串)
7字节: 开始显示字符串的X坐标(列号,范围0~7)
8字节: 开始显示字符串的Y坐标(行号,范围0~3)
示例: 发送4CH 43H 44H 80H 03H A7H 01H 02H
  从(1,2)的坐标位置开始显示字符串
库函数声明: void LCD12864_ShowString(BYTE x, BYTE y, char *str);
库函数调用: LCD12864_ShowString(0, 0, "深圳国芯人工智能");
注意: 发送显示命令前,需要先使用AFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能16: 在LCD12864屏幕上显示图片
命令格式: 4CH 43H 44H 80H 05H A8H x y cx cy
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(A8H显示图片)
7字节: 开始显示图片的X坐标(列号,范围0~7)
8字节: 开始显示图片的Y坐标(行号,范围0~3)
9字节: 图片的宽度(列数,范围1~8)
10字节: 图片的高度(行数,范围1~64)
示例: 发送4CH 43H 44H 80H 05H A8H 01H 02H 02H 02H
  从(1,2)的坐标位置开始显示2个单位宽、2个单位高的图片
库函数声明: void LCD12864_ShowPicture(
BYTE x, BYTE y, BYTE cx, BYTE cy, BYTE *dat);
库函数调用: LCD12864_ShowPicture(0, 0, 8, 64, (BYTE *)&LCD12864_IMG);
注意: 发送显示命令前,需要先使用AFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能17: 上传数据到缓冲区
命令格式: 4CH 43H 44H 80H x1 AFH ah al xx ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(AFH缓存数据)
7字节: 目标缓冲区地址高字节
8字节: 目标缓冲区地址低字节
9~字节: 需缓存的数据
示例: 发送4CH 43H 44H 80H 07H AFH 01H 00H 12H 34H 56H 78H
  数据12H、34H、56H、78H缓存到缓冲区地址的0100H~0103H
库函数声明: 无(使用库函数时,库函数会自动使用AFH命令缓存数据)
库函数调用:
注1: 数据发送到缓冲区,并没有发送到LCD12864
注2: 缓冲区大小1024字节
注3: 每个数据包最多可缓存56个字节,若数据大于56,则需分多次缓存

 



OLED12864接口

目前流行的OLED12864基本没有字库支持,本接口暂不支持字库

功能1: 关闭OLED12864的显示
命令格式: 4FH 4CH 45H 80H 02H C0H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为00
示例: 发送4FH 4CH 45H 80H 02H C0H 00H
  关闭OLED12864的显示
库函数声明: void OLED12864_DisplayOff();
库函数调用: OLED12864_DisplayOff();

 

功能2: 打开OLED12864的显示
命令格式: 4FH 4CH 45H 80H 02H C0H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为01
示例: 发送4FH 4CH 45H 80H 02H C0H 01H
  打开OLED12864的显示
库函数声明: void OLED12864_DisplayOn();
库函数调用: OLED12864_DisplayOn();

 

功能3: OLED12864显示图片内容
命令格式: 4FH 4CH 45H 80H 02H C1H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为00
示例: 发送4FH 4CH 45H 80H 02H C1H 00H
  OLED12864显示图片内容
库函数声明: void OLED12864_DisplayContent();
库函数调用: OLED12864_DisplayContent();

 

功能4: OLED12864全屏点亮(用于测试)
命令格式: 4FH 4CH 45H 80H 02H C1H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为01
示例: 发送4FH 4CH 45H 80H 02H C1H 01H
  OLED12864全屏点亮
库函数声明: void OLED12864_DisplayEntire();
库函数调用: OLED12864_DisplayEntire();

 

功能5: OLED12864水平镜像显示
命令格式: 4FH 4CH 45H 80H 02H C2H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为00
示例: 发送4FH 4CH 45H 80H 02H C2H 00H
  OLED12864水平镜像显示
库函数声明: void OLED12864_HorizontalMirror();
库函数调用: OLED12864_HorizontalMirror();

 

功能6: OLED12864垂直镜像显示
命令格式: 4FH 4CH 45H 80H 02H C2H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为01
示例: 发送4FH 4CH 45H 80H 02H C2H 01H
  OLED12864垂直镜像显示
库函数声明: void OLED12864_VerticalMirror();
库函数调用: OLED12864_VerticalMirror();

 

功能7: OLED12864反白显示
命令格式: 4FH 4CH 45H 80H 01H C3H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C3H反白显示)
示例: 发送4FH 4CH 45H 80H 01H C3H
  OLED12864反白显示
库函数声明: void OLED12864_DisplayReverse();
库函数调用: OLED12864_DisplayReverse();

 

功能8: 设置OLED12864的显示亮度
命令格式: 4FH 4CH 45H 80H 02H C4H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C4H显示亮度)
7字节: 亮度值(范围0~255)
示例: 发送4FH 4CH 45H 80H 02H C4H FFH
  OLED12864显示亮度为最亮
库函数声明: void OLED12864_SetContrast(BYTE bContrast);//bContrast:亮度
库函数调用: OLED12864_SetContrast(0x7f);

 

功能9: 设置OLED12864连续写数据的寻址模式
命令格式: 4FH 4CH 45H 80H 02H C5H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C5H寻址模式)
7字节: 寻址模式(0:水平寻址; 1:垂直寻址; 2:页寻址)
示例: 发送4FH 4CH 45H 80H 02H C5H 00H
  OLED12864的数据模式为水平寻址模式
库函数声明: void OLED12864_SetAddressMode(BYTE bMode);//bMode:模式
库函数调用: OLED12864_SetAddressMode(0x00);

 

功能10: OLED12864显示向左连续滚屏
命令格式: 4FH 4CH 45H 80H 06H C6H 00 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为0
8字节: 参与滚屏的起始页(范围0~7)
9字节: 参与滚屏的结束页(范围0~7)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 80H 06H C6H 00H 00H 07H 00H 64H
  每100毫秒OLED12864全屏向左滚动一列
库函数声明: void OLED12864_ScrollLeft(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED12864_ScrollLeft(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能11: OLED12864显示向右连续滚屏
命令格式: 4FH 4CH 45H 80H 06H C6H 01 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为1
8字节: 参与滚屏的起始页(范围0~7)
9字节: 参与滚屏的结束页(范围0~7)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 80H 06H C6H 01H 00H 07H 00H 64H
  每100毫秒OLED12864全屏向右滚动一列
库函数声明: void OLED12864_ScrollRight(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED12864_ScrollRight(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能12: OLED12864显示向上连续滚屏
命令格式: 4FH 4CH 45H 80H 06H C6H 02 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为2
8字节: 参与滚屏的起始页(范围0~7)
9字节: 参与滚屏的结束页(范围0~7)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 80H 06H C6H 02H 00H 07H 00H 64H
  每100毫秒OLED12864全屏向上滚动一页(8行)
库函数声明: void OLED12864_ScrollUp(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED12864_ScrollUp(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能13: OLED12864停止连续滚屏
命令格式: 4FH 4CH 45H 80H 02H C7H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为0
示例: 发送4FH 4CH 45H 80H 02H C7H 00H
  停止滚屏
库函数声明: void OLED12864_ScrollStop();
库函数调用: OLED12864_ScrollStop();

 

功能14: OLED12864开始连续滚屏
命令格式: 4FH 4CH 45H 80H 02H C7H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为1
示例: 发送4FH 4CH 45H 80H 02H C7H 01H
  开始滚屏
库函数声明: void OLED12864_ScrollStart();
库函数调用: OLED12864_ScrollStart();

 

功能15: 在OLED12864屏幕上显示图片
命令格式: 4FH 4CH 45H 80H 05H C8H x y cx cy
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C8H显示图片)
7字节: 开始显示图片的X坐标(列号,范围0~127)
8字节: 开始显示图片的Y坐标(页号,范围0~7)
9字节: 图片的宽度(列数,范围1~128)
10字节: 图片的高度(页数,范围1~8)
示例: 发送4FH 4CH 45H 80H 05H C8H 01H 02H 02H 02H
  从(1,2)的坐标位置开始显示2个单位宽、2个单位高的图片
库函数声明: void OLED12864_ShowPicture(
BYTE x, BYTE y, BYTE cx, BYTE cy, BYTE *dat);
库函数调用: OLED12864_ShowPicture(0, 0, 128, 8, (BYTE *)&OLED12864_IMG);
注意: 发送显示命令前,需要先使用CFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能16: 上传数据到缓冲区
命令格式: 4FH 4CH 45H 80H x1 CFH ah al xx ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(CFH缓存数据)
7字节: 目标缓冲区地址高字节
8字节: 目标缓冲区地址低字节
9~字节: 需缓存的数据
示例: 发送4FH 4CH 45H 80H 07H CFH 01H 00H 12H 34H 56H 78H
  数据12H、34H、56H、78H缓存到存储器地址的0100H~0103H
库函数声明: 无(使用库函数时,库函数会自动使用CFH命令缓存数据)
库函数调用:
注1: 数据发送到缓冲区,并没有发送到OLED12864
注2: 缓冲区大小1024字节
注3: 每个数据包最多可缓存56个字节,若数据大于56,则需分多次缓存

 



OLED320240接口
 

功能1: 关闭OLED320240的显示
命令格式: 4FH 4CH 45H 20H 02H C0H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为00
示例: 发送4FH 4CH 45H 20H 02H C0H 00H
  关闭OLED320240的显示
库函数声明: void OLED320240_DisplayOff();
库函数调用: OLED320240_DisplayOff();

 

功能2: 打开OLED320240的显示
命令格式: 4FH 4CH 45H 20H 02H C0H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为01
示例: 发送4FH 4CH 45H 20H 02H C0H 01H
  打开OLED320240的显示
库函数声明: void OLED320240_DisplayOn();
库函数调用: OLED320240_DisplayOn();

 

功能3: OLED320240显示图片内容
命令格式: 4FH 4CH 45H 20H 02H C1H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为00
示例: 发送4FH 4CH 45H 20H 02H C1H 00H
  OLED320240显示图片内容
库函数声明: void OLED320240_DisplayContent();
库函数调用: OLED320240_DisplayContent();

 

功能4: OLED320240全屏点亮(用于测试)
命令格式: 4FH 4CH 45H 20H 02H C1H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为01
示例: 发送4FH 4CH 45H 20H 02H C1H 01H
  OLED320240全屏点亮
库函数声明: void OLED320240_DisplayEntire();
库函数调用: OLED320240_DisplayEntire();

 

功能5: OLED320240水平镜像显示
命令格式: 4FH 4CH 45H 20H 02H C2H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为00
示例: 发送4FH 4CH 45H 20H 02H C2H 00H
  OLED320240水平镜像显示
库函数声明: void OLED320240_HorizontalMirror();
库函数调用: OLED320240_HorizontalMirror();

 

功能6: OLED320240垂直镜像显示
命令格式: 4FH 4CH 45H 20H 02H C2H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为01
示例: 发送4FH 4CH 45H 20H 02H C2H 01H
  OLED320240垂直镜像显示
库函数声明: void OLED320240_VerticalMirror();
库函数调用: OLED320240_VerticalMirror();

 

功能7: OLED320240反白显示
命令格式: 4FH 4CH 45H 20H 01H C3H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C3H反白显示)
示例: 发送4FH 4CH 45H 20H 01H C3H
  OLED320240反白显示
库函数声明: void OLED320240_DisplayReverse();
库函数调用: OLED320240_DisplayReverse();

 

功能8: 设置OLED320240的显示亮度
命令格式: 4FH 4CH 45H 20H 02H C4H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C4H显示亮度)
7字节: 亮度值(范围0~255)
示例: 发送4FH 4CH 45H 20H 02H C4H FFH
  OLED320240显示亮度为最亮
库函数声明: void OLED320240_SetContrast(BYTE bContrast);//bContrast:亮度
库函数调用: OLED320240_SetContrast(0x7f);

 

功能9: 设置OLED320240连续写数据的寻址模式
命令格式: 4FH 4CH 45H 20H 02H C5H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C5H寻址模式)
7字节: 寻址模式(0:水平寻址; 1:垂直寻址; 2:页寻址)
示例: 发送4FH 4CH 45H 20H 02H C5H 00H
  OLED320240的数据模式为水平寻址模式
库函数声明: void OLED320240_SetAddressMode(BYTE bMode);//bMode:模式
库函数调用: OLED320240_SetAddressMode(0x00);

 

功能10: OLED320240显示向左连续滚屏
命令格式: 4FH 4CH 45H 20H 06H C6H 00 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为0
8字节: 参与滚屏的起始页(范围0~29)
9字节: 参与滚屏的结束页(范围0~29)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 20H 06H C6H 00H 00H 07H 00H 64H
  每100毫秒OLED320240全屏向左滚动一列
库函数声明: void OLED320240_ScrollLeft(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED320240_ScrollLeft(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能11: OLED320240显示向右连续滚屏
命令格式: 4FH 4CH 45H 20H 06H C6H 01 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为1
8字节: 参与滚屏的起始页(范围0~29)
9字节: 参与滚屏的结束页(范围0~29)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 20H 06H C6H 01H 00H 07H 00H 64H
  每100毫秒OLED320240全屏向右滚动一列
库函数声明: void OLED320240_ScrollRight(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED320240_ScrollRight(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能12: OLED320240显示向上连续滚屏
命令格式: 4FH 4CH 45H 20H 06H C6H 02 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为2
8字节: 参与滚屏的起始页(范围0~29)
9字节: 参与滚屏的结束页(范围0~29)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 20H 06H C6H 02H 00H 07H 00H 64H
  每100毫秒OLED320240全屏向上滚动一页(8行)
库函数声明: void OLED320240_ScrollUp(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED320240_ScrollUp(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能13: OLED320240停止连续滚屏
命令格式: 4FH 4CH 45H 20H 02H C7H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为0
示例: 发送4FH 4CH 45H 20H 02H C7H 00H
  停止滚屏
库函数声明: void OLED320240_ScrollStop();
库函数调用: OLED320240_ScrollStop();

 

功能14: OLED320240开始连续滚屏
命令格式: 4FH 4CH 45H 20H 02H C7H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为1
示例: 发送4FH 4CH 45H 20H 02H C7H 01H
  开始滚屏
库函数声明: void OLED320240_ScrollStart();
库函数调用: OLED320240_ScrollStart();

 

功能15: 在OLED320240屏幕上显示图片
命令格式: 4FH 4CH 45H 20H 05H C8H x y cx cy
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C8H显示图片)
7字节: 开始显示图片的X坐标(列号,范围0~319)
8字节: 开始显示图片的Y坐标(页号,范围0~29)
9字节: 图片的宽度(列数,范围1~320)
10字节: 图片的高度(页数,范围1~30)
示例: 发送4FH 4CH 45H 20H 05H C8H 01H 02H 02H 02H
  从(1,2)的坐标位置开始显示2个单位宽、2个单位高的图片
库函数声明: void OLED320240_ShowPicture(
BYTE x, BYTE y, BYTE cx, BYTE cy, BYTE *dat);
库函数调用: OLED320240_ShowPicture(0, 0, 128, 8, (BYTE *)&OLED320240_IMG);
注意: 发送显示命令前,需要先使用CFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能16: 上传数据到缓冲区
命令格式: 4FH 4CH 45H 20H x1 CFH ah al xx ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(CFH缓存数据)
7字节: 目标缓冲区地址高字节
8字节: 目标缓冲区地址低字节
9~字节: 需缓存的数据
示例: 发送4FH 4CH 45H 20H 07H CFH 01H 00H 12H 34H 56H 78H
  数据12H、34H、56H、78H缓存到存储器地址的0100H~0103H
库函数声明: 无(使用库函数时,库函数会自动使用CFH命令缓存数据)
库函数调用:
注1: 数据发送到缓冲区,并没有发送到OLED320240
注2: 缓冲区大小9600字节
注3: 每个数据包最多可缓存56个字节,若数据大于56,则需分多次缓存

 



OLED480320接口
 

功能1: 关闭OLED480320的显示
命令格式: 4FH 4CH 45H 30H 02H C0H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为00
示例: 发送4FH 4CH 45H 30H 02H C0H 00H
  关闭OLED480320的显示
库函数声明: void OLED480320_DisplayOff();
库函数调用: OLED480320_DisplayOff();

 

功能2: 打开OLED480320的显示
命令格式: 4FH 4CH 45H 30H 02H C0H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为01
示例: 发送4FH 4CH 45H 30H 02H C0H 01H
  打开OLED480320的显示
库函数声明: void OLED480320_DisplayOn();
库函数调用: OLED480320_DisplayOn();

 

功能3: OLED480320显示图片内容
命令格式: 4FH 4CH 45H 30H 02H C1H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为00
示例: 发送4FH 4CH 45H 30H 02H C1H 00H
  OLED480320显示图片内容
库函数声明: void OLED480320_DisplayContent();
库函数调用: OLED480320_DisplayContent();

 

功能4: OLED480320全屏点亮(用于测试)
命令格式: 4FH 4CH 45H 30H 02H C1H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为01
示例: 发送4FH 4CH 45H 30H 02H C1H 01H
  OLED480320全屏点亮
库函数声明: void OLED480320_DisplayEntire();
库函数调用: OLED480320_DisplayEntire();

 

功能5: OLED480320水平镜像显示
命令格式: 4FH 4CH 45H 30H 02H C2H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为00
示例: 发送4FH 4CH 45H 30H 02H C2H 00H
  OLED480320水平镜像显示
库函数声明: void OLED480320_HorizontalMirror();
库函数调用: OLED480320_HorizontalMirror();

 

功能6: OLED480320垂直镜像显示
命令格式: 4FH 4CH 45H 30H 02H C2H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为01
示例: 发送4FH 4CH 45H 30H 02H C2H 01H
  OLED480320垂直镜像显示
库函数声明: void OLED480320_VerticalMirror();
库函数调用: OLED480320_VerticalMirror();

 

功能7: OLED480320反白显示
命令格式: 4FH 4CH 45H 30H 01H C3H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C3H反白显示)
示例: 发送4FH 4CH 45H 30H 01H C3H
  OLED480320反白显示
库函数声明: void OLED480320_DisplayReverse();
库函数调用: OLED480320_DisplayReverse();

 

功能8: 设置OLED480320的显示亮度
命令格式: 4FH 4CH 45H 30H 02H C4H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C4H显示亮度)
7字节: 亮度值(范围0~255)
示例: 发送4FH 4CH 45H 30H 02H C4H FFH
  OLED480320显示亮度为最亮
库函数声明: void OLED480320_SetContrast(BYTE bContrast);//bContrast:亮度
库函数调用: OLED480320_SetContrast(0x7f);

 

功能9: 设置OLED480320连续写数据的寻址模式
命令格式: 4FH 4CH 45H 30H 02H C5H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C5H寻址模式)
7字节: 寻址模式(0:水平寻址; 1:垂直寻址; 2:页寻址)
示例: 发送4FH 4CH 45H 30H 02H C5H 00H
  OLED480320的数据模式为水平寻址模式
库函数声明: void OLED480320_SetAddressMode(BYTE bMode);//bMode:模式
库函数调用: OLED480320_SetAddressMode(0x00);

 

功能10: OLED480320显示向左连续滚屏
命令格式: 4FH 4CH 45H 30H 06H C6H 00 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为0
8字节: 参与滚屏的起始页(范围0~39)
9字节: 参与滚屏的结束页(范围0~39)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 30H 06H C6H 00H 00H 07H 00H 64H
  每100毫秒OLED480320全屏向左滚动一列
库函数声明: void OLED480320_ScrollLeft(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED480320_ScrollLeft(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能11: OLED480320显示向右连续滚屏
命令格式: 4FH 4CH 45H 30H 06H C6H 01 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为1
8字节: 参与滚屏的起始页(范围0~39)
9字节: 参与滚屏的结束页(范围0~39)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 30H 06H C6H 01H 00H 07H 00H 64H
  每100毫秒OLED480320全屏向右滚动一列
库函数声明: void OLED480320_ScrollRight(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED480320_ScrollRight(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能12: OLED480320显示向上连续滚屏
命令格式: 4FH 4CH 45H 30H 06H C6H 02 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为2
8字节: 参与滚屏的起始页(范围0~39)
9字节: 参与滚屏的结束页(范围0~39)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 30H 06H C6H 02H 00H 07H 00H 64H
  每100毫秒OLED480320全屏向上滚动一页(8行)
库函数声明: void OLED480320_ScrollUp(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED480320_ScrollUp(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能13: OLED480320停止连续滚屏
命令格式: 4FH 4CH 45H 30H 02H C7H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为0
示例: 发送4FH 4CH 45H 30H 02H C7H 00H
  停止滚屏
库函数声明: void OLED480320_ScrollStop();
库函数调用: OLED480320_ScrollStop();

 

功能14: OLED480320开始连续滚屏
命令格式: 4FH 4CH 45H 30H 02H C7H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为1
示例: 发送4FH 4CH 45H 30H 02H C7H 01H
  开始滚屏
库函数声明: void OLED480320_ScrollStart();
库函数调用: OLED480320_ScrollStart();

 

功能15: 在OLED480320屏幕上显示图片
命令格式: 4FH 4CH 45H 30H 05H C8H x y cx cy
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C8H显示图片)
7字节: 开始显示图片的X坐标(列号,范围0~479)
8字节: 开始显示图片的Y坐标(页号,范围0~39)
9字节: 图片的宽度(列数,范围1~480)
10字节: 图片的高度(页数,范围1~40)
示例: 发送4FH 4CH 45H 30H 05H C8H 01H 02H 02H 02H
  从(1,2)的坐标位置开始显示2个单位宽、2个单位高的图片
库函数声明: void OLED480320_ShowPicture(
BYTE x, BYTE y, BYTE cx, BYTE cy, BYTE *dat);
库函数调用: OLED480320_ShowPicture(0, 0, 128, 8, (BYTE *)&OLED480320_IMG);
注意: 发送显示命令前,需要先使用CFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能16: 上传数据到缓冲区
命令格式: 4FH 4CH 45H 30H x1 CFH ah al xx ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(CFH缓存数据)
7字节: 目标缓冲区地址高字节
8字节: 目标缓冲区地址低字节
9~字节: 需缓存的数据
示例: 发送4FH 4CH 45H 30H 07H CFH 01H 00H 12H 34H 56H 78H
  数据12H、34H、56H、78H缓存到存储器地址的0100H~0103H
库函数声明: 无(使用库函数时,库函数会自动使用CFH命令缓存数据)
库函数调用:
注1: 数据发送到缓冲区,并没有发送到OLED480320
注2: 缓冲区大小19200字节
注3: 每个数据包最多可缓存56个字节,若数据大于56,则需分多次缓存

 



OLED640480接口
 

功能1: 关闭OLED640480的显示
命令格式: 4FH 4CH 45H 40H 02H C0H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为00
示例: 发送4FH 4CH 45H 40H 02H C0H 00H
  关闭OLED640480的显示
库函数声明: void OLED640480_DisplayOff();
库函数调用: OLED640480_DisplayOff();

 

功能2: 打开OLED640480的显示
命令格式: 4FH 4CH 45H 40H 02H C0H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C0H显示功能)
7字节: 固定为01
示例: 发送4FH 4CH 45H 40H 02H C0H 01H
  打开OLED640480的显示
库函数声明: void OLED640480_DisplayOn();
库函数调用: OLED640480_DisplayOn();

 

功能3: OLED640480显示图片内容
命令格式: 4FH 4CH 45H 40H 02H C1H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为00
示例: 发送4FH 4CH 45H 40H 02H C1H 00H
  OLED640480显示图片内容
库函数声明: void OLED640480_DisplayContent();
库函数调用: OLED640480_DisplayContent();

 

功能4: OLED640480全屏点亮(用于测试)
命令格式: 4FH 4CH 45H 40H 02H C1H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C1H显示内容)
7字节: 固定为01
示例: 发送4FH 4CH 45H 40H 02H C1H 01H
  OLED640480全屏点亮
库函数声明: void OLED640480_DisplayEntire();
库函数调用: OLED640480_DisplayEntire();

 

功能5: OLED640480水平镜像显示
命令格式: 4FH 4CH 45H 40H 02H C2H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为00
示例: 发送4FH 4CH 45H 40H 02H C2H 00H
  OLED640480水平镜像显示
库函数声明: void OLED640480_HorizontalMirror();
库函数调用: OLED640480_HorizontalMirror();

 

功能6: OLED640480垂直镜像显示
命令格式: 4FH 4CH 45H 40H 02H C2H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C2H镜像显示)
7字节: 固定为01
示例: 发送4FH 4CH 45H 40H 02H C2H 01H
  OLED640480垂直镜像显示
库函数声明: void OLED640480_VerticalMirror();
库函数调用: OLED640480_VerticalMirror();

 

功能7: OLED640480反白显示
命令格式: 4FH 4CH 45H 40H 01H C3H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C3H反白显示)
示例: 发送4FH 4CH 45H 40H 01H C3H
  OLED640480反白显示
库函数声明: void OLED640480_DisplayReverse();
库函数调用: OLED640480_DisplayReverse();

 

功能8: 设置OLED640480的显示亮度
命令格式: 4FH 4CH 45H 40H 02H C4H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C4H显示亮度)
7字节: 亮度值(范围0~255)
示例: 发送4FH 4CH 45H 40H 02H C4H FFH
  OLED640480显示亮度为最亮
库函数声明: void OLED640480_SetContrast(BYTE bContrast);//bContrast:亮度
库函数调用: OLED640480_SetContrast(0x7f);

 

功能9: 设置OLED640480连续写数据的寻址模式
命令格式: 4FH 4CH 45H 40H 02H C5H xx
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C5H寻址模式)
7字节: 寻址模式(0:水平寻址; 1:垂直寻址; 2:页寻址)
示例: 发送4FH 4CH 45H 40H 02H C5H 00H
  OLED640480的数据模式为水平寻址模式
库函数声明: void OLED640480_SetAddressMode(BYTE bMode);//bMode:模式
库函数调用: OLED640480_SetAddressMode(0x00);

 

功能10: OLED640480显示向左连续滚屏
命令格式: 4FH 4CH 45H 40H 06H C6H 00 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为0
8字节: 参与滚屏的起始页(范围0~59)
9字节: 参与滚屏的结束页(范围0~59)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 40H 06H C6H 00H 00H 07H 00H 64H
  每100毫秒OLED640480全屏向左滚动一列
库函数声明: void OLED640480_ScrollLeft(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED640480_ScrollLeft(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能11: OLED640480显示向右连续滚屏
命令格式: 4FH 4CH 45H 40H 06H C6H 01 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为1
8字节: 参与滚屏的起始页(范围0~59)
9字节: 参与滚屏的结束页(范围0~59)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 40H 06H C6H 01H 00H 07H 00H 64H
  每100毫秒OLED640480全屏向右滚动一列
库函数声明: void OLED640480_ScrollRight(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED640480_ScrollRight(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能12: OLED640480显示向上连续滚屏
命令格式: 4FH 4CH 45H 40H 06H C6H 02 x1 x2 x3 x4
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C6H滚屏控制)
7字节: 固定为2
8字节: 参与滚屏的起始页(范围0~59)
9字节: 参与滚屏的结束页(范围0~59)
10字节: 滚屏周期值的高字节(周期单位为毫秒)
11字节: 滚屏周期值的低字节
示例: 发送4FH 4CH 45H 40H 06H C6H 02H 00H 07H 00H 64H
  每100毫秒OLED640480全屏向上滚动一页(8行)
库函数声明: void OLED640480_ScrollUp(
BYTE bPageStart, BYTE bPageEnd, WORD nInterval);//nInterval:周期
库函数调用: OLED640480_ScrollUp(0, 7, 100);
注: 发送完C6命令后,必须再发送一次C7H 01H命令才会开始滚屏

 

功能13: OLED640480停止连续滚屏
命令格式: 4FH 4CH 45H 40H 02H C7H 00H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为0
示例: 发送4FH 4CH 45H 40H 02H C7H 00H
  停止滚屏
库函数声明: void OLED640480_ScrollStop();
库函数调用: OLED640480_ScrollStop();

 

功能14: OLED640480开始连续滚屏
命令格式: 4FH 4CH 45H 40H 02H C7H 01H
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C7H滚屏控制)
7字节: 固定为1
示例: 发送4FH 4CH 45H 40H 02H C7H 01H
  开始滚屏
库函数声明: void OLED640480_ScrollStart();
库函数调用: OLED640480_ScrollStart();

 

功能15: 在OLED640480屏幕上显示图片
命令格式: 4FH 4CH 45H 40H 05H C8H x y cx cy
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(C8H显示图片)
7字节: 开始显示图片的X坐标(列号,范围0~639)
8字节: 开始显示图片的Y坐标(页号,范围0~59)
9字节: 图片的宽度(列数,范围1~640)
10字节: 图片的高度(页数,范围1~60)
示例: 发送4FH 4CH 45H 40H 05H C8H 01H 02H 02H 02H
  从(1,2)的坐标位置开始显示2个单位宽、2个单位高的图片
库函数声明: void OLED640480_ShowPicture(
BYTE x, BYTE y, BYTE cx, BYTE cy, BYTE *dat);
库函数调用: OLED640480_ShowPicture(0, 0, 128, 8, (BYTE *)&OLED640480_IMG);
注意: 发送显示命令前,需要先使用CFH命令将需要显示的内容发送到缓冲区。
若调用库函数则库函数会自动处理。

 

功能16: 上传数据到缓冲区
命令格式: 4FH 4CH 45H 40H x1 CFH ah al xx ...
命令说明:  
1~4字节: 命令头
5字节: 后面有效数据长度
6字节: 功能选择(CFH缓存数据)
7字节: 目标缓冲区地址高字节
8字节: 目标缓冲区地址低字节
9~字节: 需缓存的数据
示例: 发送4FH 4CH 45H 40H 07H CFH 01H 00H 12H 34H 56H 78H
  数据12H、34H、56H、78H缓存到存储器地址的0100H~0103H
库函数声明: 无(使用库函数时,库函数会自动使用CFH命令缓存数据)
库函数调用:
注1: 数据发送到缓冲区,并没有发送到OLED640480
注2: 缓冲区大小38400字节
注3: 每个数据包最多可缓存56个字节,若数据大于56,则需分多次缓存

 



虚拟键盘接口
 

功能: 在虚拟键盘上按键然后发送相应的键值到设备
命令格式: 4BH 45H 59H 50H 00H x1 00H 00H
命令说明:  
1~4字节: 命令头
5字节: 保留
6字节: 按键键值
7~8字节: 保留
示例: 接收到4BH 45H 59H 50H 00H 30H 00H 00H
  表示数字键0被按下
库函数声明:
库函数调用:
键值对应表:
按键 键值 按键 键值 按键 键值 按键 键值
数字0 30H 字母E 45H 字母S 53H 向上 26H
数字1 31H 字母F 46H 字母T 54H 向下 28H
数字2 32H 字母G 47H 字母U 55H 向左 25H
数字3 33H 字母H 48H 字母V 56H 向右 27H
数字4 34H 字母I 49H 字母W 57H 起始 24H
数字5 35H 字母J 4AH 字母X 58H 结束 23H
数字6 36H 字母K 4BH 字母Y 59H 上页 21H
数字7 37H 字母L 4CH 字母Z 5AH 下页 22H
数字8 38H 字母M 4DH 加号 6BH 退出 1BH
数字9 39H 字母N 4EH 减号 6DH 删除 2EH
字母A 41H 字母O 4FH 乘号 6AH 退格 08H
字母B 42H 字母P 50H 除号 6FH 空格 20H
字母C 43H 字母Q 51H 点号 6EH 回车 0DH
字母D 44H 字母R 52H 等于号 3DH    

 



数字示波器接口
 

480x320的示波器波形分辨率为:水平400点,垂直250点
网格每5个点显示一点,每25点一排点

数据意义:
  0(00H)~250(FAH)为数据。
  251(FBH)为帧数据头,后面是400个字节的Y轴数据。
  252(FCH)为点数据头,之后是点X、Y的数据。
  253(FDH)为转义符,如果收到这个字符,则之后的一个字节要加上0x80。
  254(FEH)为命令头,表示后面是命令。
  255(FFH)为数据结束标志。
 

数据传输协议:

功能FB: 单片机上传数据(400个点的数据)
命令格式: FBH DAT0 DAT1 ..... DAT399 FFH
命令说明:  
1字节: 命令头(帧数据)
2~401字节: 400个Y轴数据(数值为0~250),字节序号0~399就是X轴
402字节: 命令结束(固定为FFH)
示例:  
   

 

功能FC: 单片机上传数据(1个点的数据)
命令格式: FCH DAT0 DAT1 DAT2 FFH
命令说明:  
1字节: 命令头(点数据)
2~3字节: X轴位置(0~399),DAT0为位置高字节,DAT1为位置低字节
4字节: Y轴数值(0~250)
5字节: 命令结束(固定为FFH)
示例:  
   

 

功能FE 上传设置参数(时基参数02)
命令格式: FEH 02H DAT0 DAT1 DAT2 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(02: 时基参数)
3~4字节: 时基值,高字节在前,低字节在后
5字节: 时基单位。0:ns,1:us,2:ms,3:s
6字节: 命令结束(固定为FFH)
示例: FEH 02H 01H F4H 01H FFH
  01F4H十进制为500,01为us,则为500us/DIV。DIV是水平一个大格

 

功能FE 上传设置参数(垂直幅度参数03)
命令格式: FEH 03H DAT0 DAT1 DAT2 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(03: 垂直幅度参数)
3~4字节: 垂直幅度值,高字节在前,低字节在后
5字节: 幅度单位。0:uV,1:mV,2:V
6字节: 命令结束(固定为FFH)
示例: FEH 03H 01H F4H 01H FFH
  01F4H十进制为500,01为mV,则为500mV/DIV。DIV是垂直一个大格

 

功能FE 上传设置参数(运行模式参数04
命令格式: FEH 04H DAT0 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(04: 运行模式参数)
3字节: 运行模式。0:停止,1:运行
4字节: 命令结束(固定为FFH)
示例: FEH 04H 01H FFH
  当前状态为运行

 

功能FE 上传设置参数(触发模式参数05
命令格式: FEH 05H DAT0 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(05: 触发模式参数)
3字节: 触发模式。0:上升沿,1:下降沿
4字节: 命令结束(固定为FFH)
示例: FEH 04H 00H FFH
  当前触发模式为上升沿触发

 

功能FE 上传设置参数(触发方式参数06
命令格式: FEH 06H DAT0 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(06: 触发方式参数)
3字节: 触发方式。0:自动,1:普通(标准),2:单次
4字节: 命令结束(固定为FFH)
示例: FEH 04H 00H FFH
  当前触发方式为自动触发

 

功能FE 上传设置参数(自动侦测的频率参数07
命令格式: FEH 07H DAT0 DAT1 DAT2 DAT3 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(07: 频率参数)
3~6字节: 频率值,高字节在前,低字节在后
7字节: 命令结束(固定为FFH)
示例: FEH 07H 00H 00H 27H 10H FFH
  00002710H十进制为10000,则当前自动侦测到的频率为10000Hz

 

功能FE 上传设置参数(波形左移时间参数08
命令格式: FEH 08H DAT0 DAT1 DAT2 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(08: 时间偏移参数)
3~4字节: 时间偏移/左移时间值,高字节在前,低字节在后
5字节: 时间单位。0:1ns,1:10ns, 2:100ns, 3:1us,4:10us, 5:100us, 6:1ms,7:10ms, 8:100ms, 9:1s
6字节: 命令结束(固定为FFH)
示例: FEH 08H 01H F4H 03H FFH
  01F4H十进制为500,03为1us,则波形左移了500us

 

功能FE 上传设置参数(清屏指令09
命令格式: FEH 09H FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(09: 清屏指令)
3字节: 命令结束(固定为FFH)
示例: FEH 09H FFH
  PC收到后,清除波形显示

 

功能FE PC下传按键值(下传指令01
命令格式: FEH 01H DAT0 FFH
命令说明:  
1字节: 命令头(设置参数命令)
2字节: 参数类型(01: 下传按键指令)
3字节: 按键类型。01:时基+,02:时基-,03:垂直幅度+,04:垂直幅度-,05:运行/停止,06:触发模式,07:触发方式,08:波形左移,09:波形右移,0A:波形上移,0B:波形下移, 0C:上传参数
4字节: 命令结束(固定为FFH)
示例: FEH 01H 05H FFH
  PC下传05键值到单片机

 



串口绘图工具协议
 

数据流格式:
  串口绘图工具可支持同时绘制1~8通道的数据,
  当使能显示通道后,相应通道的数据需要按通道顺序上传到串口助手。

  例如:如果使能了通道1和通道2,则数据流的格式必须如下:
     通道1的第1个点的数据、通道2的第1个点的数据、
     通道1的第2个点的数据、通道2的第2个点的数据、
     ...
     通道1的第n个点的数据、通道2的第n个点的数据

  每个数据点数据位宽可以是8bit或者16bit,
  16bit的数据支持LE(低字节在前)和BE(高字节在前)格式。

  使能通道和数据格式可在画图界面的右键菜单的“设置”界面进行设置。

  注意:数据格式修改、通道使能设置以及加载/保存数据操作必须在
     串口助手处于关闭状态时(即画图工具处于空闲状态时)才能进行。


绘图界面键盘/鼠标操作:

目的 操作方法
整体波形上/下/左/右移动 在波形绘制区域按住鼠标左键上/下/左/右移动
整体波形仅在水平方向
左/右慢速移动
在波形绘制区域上/下滚动鼠标滚轮
按键盘左/右方向键
整体波形仅在垂直方向
上/下慢速移动
在左边的垂直刻度区域上/下滚动鼠标滚轮
按键盘PageUp/PageDown键
整体波形仅在水平方向
左/右快速移动
在下方的进度条区域用鼠标左键按住进度块左/右移动
单通道波形上/下移动 在左边的垂直刻度区域用鼠标左键按住相应通道的指示器上/下移动
整体波形水平放大/缩小 在波形绘制区域按住鼠标左键,然后上/下滚动鼠标滚轮
按键盘上/下方向键
整体波形垂直放大/缩小 在左边的垂直刻度区域按住鼠标左键,然后上/下滚动鼠标滚轮
移动到波形的头部 在下方的进度条区域用鼠标左键将进度块拖到最左边
按键盘Home键
移动到波形的尾部 在下方的进度条区域用鼠标左键将进度块拖到最右边
按键盘End键

如何动态绘制波形并实时显示最新数据:
  在下方的进度条区域用鼠标左键将进度块拖到最右边或按键盘End键
 




FFT(快速傅立叶)绘图接口
 

数据意义:
  0(00H)~250(FAH)为数据。
  251(FBH)为帧数据头,后面是128/64/32个字节的Y轴数据。
  255(FFH)为数据结束标志。
 

数据传输协议:

功能FB: 单片机上传数据(128个点的数据)
命令格式: FBH DAT0 DAT1 ..... DAT127 FFH
命令说明:  
1字节: 命令头(帧数据)
2~129字节: 128个Y轴数据(数值为0~250),字节序号0~127就是X轴
130字节: 命令结束(固定为FFH)
示例: FBH xxH xxH ... xxH FFH
   

 

功能FB: 单片机上传数据(64个点的数据)
命令格式: FBH DAT0 DAT1 ..... DAT63 FFH
命令说明:  
1字节: 命令头(帧数据)
2~129字节: 128个Y轴数据(数值为0~250),字节序号0~63就是X轴
130字节: 命令结束(固定为FFH)
示例: FBH xxH xxH ... xxH FFH
   

 

功能FB: 单片机上传数据(32个点的数据)
命令格式: FBH DAT0 DAT1 ..... DAT31 FFH
命令说明:  
1字节: 命令头(帧数据)
2~129字节: 128个Y轴数据(数值为0~250),字节序号0~31就是X轴
130字节: 命令结束(固定为FFH)
示例: FBH xxH xxH ... xxH FFH