通过USB HID协议进行STC-ISP调试接口显示使用说明
资料介绍
通过USB HID协议进行STC-ISP调试接口显示使用说明
通过 USB HID 协议调试虚拟设备
1 简介
为了方便用户在使用带硬件 USB 接口芯片开发过程中,输入/输出一些数据信息进行调试分
析,我们提供了一套"stc_usb_hid_32g.LIB"库文件,配套 STC-ISP(V6.90H 以后版本)软件,可
方便的使用 USB 接口进行数据通信,在 STC-ISP 软件上模拟 LED 灯,数码管,12864 屏,
OLED 屏的显示,以及虚拟键盘的输入功能。
2 使用说明
2.1 添加库文件
在项目栏程序组上点击鼠标右键,选择”Add Existing Files to Group ‘Source Group 1’…”:
在弹框里选择库文件,并添加到项目里:
2.2 添加必要程序
在初始化程序里添加 USB 时钟源启动,USB 模块进行初始化程序:
主循环里添加 USB 接收判断以及应答指令:
至此 USB HID 数据输入/输出功能的必要准备工作完成。
2.3 功能使用说明
将例程烧录到芯片里后,通过 USB 线连接电脑,点击 STC-ISP 软件里的 USB-HID 助手
标签,选择并打开“STC HID Demo”设备:
通过 STC-ISP 软件的“调试接口”菜单,打开“接口设置”,设置调试接口,选择 HID 助手:
通过 STC-ISP 软件的“调试接口”菜单,打开需要使用的虚拟设备:
2.3.1 虚拟键盘
例程通过接收虚拟键盘的按键,判断键值执行相应的功能。打开“虚拟键盘”窗口,点击上面
的按钮就可以发送对应的键值给 MCU:
程序里判断接收数据是否来源于虚拟键盘:
如果接收数据来源于虚拟键盘,判断键值并执行相应的操作:
2.3.2 7 段数码管
通过 STC-ISP 软件的“调试接口”菜单,打开 7 段数码管虚拟设备。
显示字符串数据
收到虚拟键盘键值“1”按键码时演示" printf"函数输出虚拟数码管显示的字符串数据:
显示长整型数据
收到虚拟键盘键值“2”按键码时演示"ShowLong"函数输出虚拟数码管显示的长整型数据:
显示浮点数数据
收到虚拟键盘键值“3”按键码时演示"ShowFloat"函数输出虚拟数码管显示的浮点数数据:
显示码值数据
收到虚拟键盘键值“4”按键码时演示"ShowCode"函数输出虚拟数码管码值数据;
7 段数码管码值参考
0 1 2 3 4 5 6 7 8 9 A B C D E F
3F 06 5B 4F 66 6D 7D 27 7F 6F 77 7C 39 5E 79 71
- H J K L N o P U t G Q r M y
00 40 76 1E 70 38 37 5C 73 3E 78 3D 67 50 37 6E
最高位为小数点。
2.3.3 LED-DIP40
通过 STC-ISP 软件的“调试接口”菜单,打开 LED-DIP40 虚拟设备。此虚拟设备模拟
STC32G12K128 核心功能板(降龙棍)的 LED 显示功能。
收到虚拟键盘键值“5”按键码时演示 P0=0xaa 驱动虚拟 LED 灯显示的状态(输出 0 时 LED
亮,输出 1 时 LED 灭):
收到虚拟键盘键值“6”按键码时演示 P0=0x12,P1=0x34,P2=0x56,P3=0x78 驱动虚拟 LED 灯显
示的状态(输出 0 时 LED 亮,输出 1 时 LED 灭):
2.3.4 LED-DIP64
通过 STC-ISP 软件的“调试接口”菜单,打开 LED-DIP64 虚拟设备。此虚拟设备模拟
STC32G12K128 核心功能板(屠龙刀)的 LED 显示功能。
收到虚拟键盘键值“7”按键码时演示 P0=0xaa 驱动虚拟 LED 灯显示的状态(输出 0 时 LED
亮,输出 1 时 LED 灭):
收到虚拟键盘键值“8”按键码时演示 P0=0x12,P1=0x34,P2=0x56,P3=0x78 驱动虚拟 LED 灯显
示的状态(输出 0 时 LED 亮,输出 1 时 LED 灭):
2.3.5 液晶显示 12864
通过 STC-ISP 软件的“调试接口”菜单,打开液晶显示 12864 虚拟设备。此虚拟设备模拟 12864
点阵黑白屏的显示功能。
关闭 LCD12864 的显示
收到虚拟键盘键值“A”按键码时演示关闭 LCD12864 的显示:
打开 LCD12864 的显示
收到虚拟键盘键值“B”按键码时演示打开 LCD12864 的显示:
显示/隐藏 LCD12864 的光标
收到虚拟键盘键值“C”按键码时演示隐藏 LCD12864 的光标;收到虚拟键盘键值“D”按键码时
演示显示 LCD12864 的光标:
光标左移/右移
收到虚拟键盘键值“E”按键码时演示光标向左移动一个单位(16 个像素);收到虚拟键盘键值
“F”按键码时演示光标向右移动一个单位(16 个像素):
光标复位
收到虚拟键盘键值“G”按键码时演示光标回到左上角初始位置:
屏幕向左滚动
收到虚拟键盘键值“H”按键码时演示屏幕向左滚动一个单位(16 个像素):
屏幕向右滚动
收到虚拟键盘键值“I”按键码时演示屏幕向右滚动一个单位(16 个像素):
屏幕向上滚动
收到虚拟键盘键值“J”按键码时演示屏幕向上滚动一个单位(16 个像素):
反白显示
收到虚拟键盘键值“M”按键码时演示反白显示指定的行:
清除显示
收到虚拟键盘键值“N”按键码时演示清除显示:
显示 ASCII 码和简体中文字符
收到虚拟键盘键值“O”按键码时演示在 LCD12864 上显示 ASCII 码和简体中文字符:
自动换行开关
收到虚拟键盘键值“K”按键码时演示关闭自动换行功能;收到虚拟键盘键值“L”按键码时演示
开启自动换行功能(先使能自动换行开关,再输出显示字符):
显示图片
收到虚拟键盘键值“P”按键码时演示在 LCD12864 屏幕上显示图片:
2.3.6 OLED-12864
通过 STC-ISP 软件的“调试接口”菜单,打开 OLED-12864 虚拟设备。此虚拟设备模拟分辨率
为 128*64 点阵的 OLED 屏显示功能。
关闭 OLED12864 的显示
收到虚拟键盘键值“Q”按键码时演示关闭 OLED12864 的显示:
打开 OLED12864 的显示
收到虚拟键盘键值“R”按键码时演示打开 OLED12864 的显示:
显示屏幕内容
收到虚拟键盘键值“S”按键码时演示显示屏幕内容:
全屏点亮(用于测试)
收到虚拟键盘键值“T”按键码时演示全屏点亮(用于测试,输入“S”按键码切换显示屏幕内容):
水平镜像显示
收到虚拟键盘键值“U”按键码时演示水平镜像显示:
垂直镜像显示
收到虚拟键盘键值“V”按键码时演示垂直镜像显示:
反白显示
收到虚拟键盘键值“W”按键码时演示反白显示:
设置亮度值
收到虚拟键盘键值“X”按键码时演示亮度值=0x10(范围 0~255):
收到虚拟键盘键值“Y”按键码时演示亮度值=0x80(范围 0~255):
收到虚拟键盘键值“Z”按键码时演示亮度值=0xf0(范围 0~255):
滚动功能
OLED GDDRAM 共分为 8 个 Page,每一个 Page 对应 8 个 COM,每一个 COM 驱动一行
OLED 显示,即共 64 行;而一个 COM 驱动内有 128 列(Segment),组成 128*64OLED 点
阵驱动。
参数 1:参与滚屏的起始页(范围 0~7);
参数 2:参与滚屏的结束页(范围 0~7);
参数 3:滚屏的周期值(周期单位为毫秒)。
收到虚拟键盘键值“ UP ” 按 键 码 时 演 示 向 上 滚 动 功 能 ( 设 置 好 方 向 后 通 过
“OLED12864_ScrollStart”指令开始执行滚动操作):
收 到 虚 拟 键 盘 键 值 “ LEFT ” 按 键 码 时 演 示 向 左 滚动功能 ( 设 置 好 方 向 后 通 过
“OLED12864_ScrollStart”指令开始执行滚动操作):
收 到 虚 拟 键 盘 键 值 “ RIGHT ” 按 键 码 时 演 示 向 右 滚 动 功 能 ( 设 置 好 方 向 后 通 过
“OLED12864_ScrollStart”指令开始执行滚动操作):
收到虚拟键盘键值“DOWN”按键码时开始执行滚动操作。
收到虚拟键盘键值“PageUp”按键码时停止执行滚动操作。
寻址模式
收到虚拟键盘键值“HOME”,“END”按键码时设置寻址模式(0:水平寻址; 1:垂直寻址;
2:页寻址)。
图片显示
收到虚拟键盘键值“PageDn”按键码时在 OLED12864 屏幕上显示图片。设置完寻址模式后再
进行图片显示,便可看出不同寻址模式的差异。
水平寻址显示效果:
垂直寻址显示效果:
2.3.7 数据接收处理
在程序里可对接收到的数据进行处理,例如将接收数据复制到发送缓冲区,然后调用
“usb_IN()”函数发送出来:
测试结果如下:
字符串发送测试:
USB HID 收发数据包大小固定为 64 字节,一次性收发数据长度不要超过 64 字节,数据
长度不足 64 字节的后面填充无效数据。
2.3.8 发送指令触发 MCU 复位并自动下载
打开 STC-ISP 软件(V6.90I 以上版本),选择芯片型号、打开需要烧录的程序文件、设置好
硬件选项后,切换到“收到用户命令后复位到 ISP 监控程序区”标签:
如下图所示,选择“USB(HID)模式”,设置默认 VID: 34BF,PID: FF01;
设置自定义命令:@STCISP#
取消 “Hex” 选项,命令应与程序里的定义相同:
char *USER_STCISPCMD = "@STCISP#"; //设置自动复位到 ISP 区的用户接口命令
点击“发送用户自定义命令并开始下载”按钮,或者在勾选“每次下载前都先发送自定义命令”
选项情况下也可点击“下载/编程”按钮开始下载。
(此步骤需要将支持自动下载功能的程序通过手动上电复位的方式下载到芯片后才能使用)。
部分文件列表
文件名 |
大小 |
通过USB_HID协议进行STC-ISP调试接口显示使用说明.pdf |
2M |
全部评论(0)