找回密码
 立即注册
查看: 74|回复: 3

8H8K64U Printf_USB 打卡

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:19
  • 最近打卡:2025-04-28 15:35:40

8

主题

44

回帖

459

积分

版主

积分
459
发表于 4 天前 | 显示全部楼层 |阅读模式
实验一:printf_usb("Hello World !\r\n"), 第一个完整的C语言

1:添加库文件
(1)官网-软件工具部分找到库函数部分:深圳国芯人工智能有限公司-库函数
截图202504271051114983.jpg

(2)下载解压后,找到CDC查询模式下,stc_usb_cdc_8h_xdata.LIB
将其复制到自己所创建的工程下
截图202504271401456629.jpg

(3)双击 Source Group,在弹出的窗口中,在文件类型里选择All files
就能看到刚刚复制的stc_usb_cdc_8h_xdata.LIB文件,选择此文件添加
截图202504271438127576.jpg

(4)添加成功
截图202504271438458749.jpg

2:编译成功
截图202504271512501617.jpg



3:打开最新版本的AIapp-ISP-V6.95M软件
选择单片机型号为:STC8H8K64U,打开hex,点击下载
截图202504271514443885.jpg
截图202504271515525936.jpg



回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 4 天前 | 显示全部楼层
实验一:基于USB的printf函数实现“Hello World”输出

1. 实验目的
本实验旨在通过编写C语言程序,利用USB接口实现“Hello World”字符串的输出,掌握基本的C语言编程技巧以及USB通信的基本原理。

2. 实验环境
开发板:STC8H8K64U
开发环境:Keil uVision5
编程语言:C语言
通信接口:USB

3. 实验原理
USB(Universal Serial Bus)是一种通用的串行总线标准,广泛应用于计算机与外部设备的连接。在本实验中,我们通过USB接口将开发板与计算机连接,利用C语言的printf函数将字符串“Hello World”发送到计算机的串口调试工具中显示。

4. 实验步骤

4.1 硬件连接
1. 将STC8H8K64U开发板通过USB线连接到计算机。
2. 确保开发板的USB接口正常工作,并正确识别为串口设备。

4.2 软件配置
1. 打开Keil uVision5,创建一个新的C语言项目。
2. 配置项目属性,选择正确的芯片型号(STC8H8K64U)。
3. 设置调试工具为USB接口,并配置波特率、数据位、停止位等参数。

4.3 编写代码
在项目中创建一个新的C语言源文件,编写如下代码:
  1. c
  2. include
  3. include
  4. void printfusb(const char str) {
  5.     while (str) {
  6.         SBUF = str++;  // 将字符发送到串口缓冲区
  7.         while (!TI);    // 等待发送完成
  8.         TI = 0;         // 清除发送标志位
  9.     }
  10. }
  11. void main() {
  12.     // 初始化串口
  13.     SCON = 0x50;        // 设置串口模式1,8位数据,1位停止位
  14.     TMOD = 0x20;        // 设置定时器1为模式2
  15.     TH1 = 0xFD;         // 设置波特率为9600
  16.     TL1 = 0xFD;
  17.     TR1 = 1;            // 启动定时器1
  18.     ES = 1;             // 使能串口中断
  19.     EA = 1;             // 使能全局中断
  20.     // 输出“Hello World”
  21.     printfusb("Hello World !\r\n");
  22.     while (1);          // 主循环
  23. }
复制代码

4.4 编译与下载
1. 编译项目,确保没有错误。
2. 将编译生成的HEX文件下载到STC8H8K64U开发板中。

4.5 运行与调试
1. 打开计算机上的串口调试工具(如Tera Term、SecureCRT等)。
2. 配置串口参数与开发板一致(波特率9600,8位数据,1位停止位,无校验位)。
3. 运行程序,观察串口调试工具中是否显示“Hello World !”。

5. 实验结果
成功在串口调试工具中显示“Hello World !”字符串,表明通过USB接口的printf函数实现成功。

6. 实验总结
通过本实验,我们掌握了如何利用C语言编写程序,通过USB接口实现字符串的输出。这不仅加深了对C语言编程的理解,也为后续更复杂的USB通信实验奠定了基础。

7. 注意事项
1. 确保开发板的USB接口与计算机正确连接,并正确识别为串口设备。
2. 在编写代码时,注意串口初始化参数的设置,确保与串口调试工具一致。
3. 在调试过程中,如遇到问题,可通过查看串口调试工具的输出信息进行排查。

8. 扩展思考
1. 如何通过USB接口实现更复杂的数据传输,如文件传输、图像传输等?
2. 如何优化printfusb函数,提高数据传输的效率?
3. 如何利用USB接口实现双向通信,即开发板与计算机之间的数据交互?

通过本实验,我们不仅掌握了基本的C语言编程技巧,还对USB通信有了初步的了解。希望同学们能够在此基础上,进一步探索更多有趣的实验和应用。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:19
  • 最近打卡:2025-04-28 15:35:40

8

主题

44

回帖

459

积分

版主

积分
459
发表于 4 天前 | 显示全部楼层
实验二:查询方式,查询到电脑命令后,printf_usb("Hello World !\r\n")
1:库文件添加,将复制好的stc_usb_cdc_8h_xdata.LIB文件
添加到Source Group1中,具体步骤如实验一
截图202504271706505025.jpg

2:编译成功
截图202504271554126221.jpg

3:打开最新版本的AIapp-ISP-V6.95M软件
选择单片机型号为:STC8H8K64U,打开hex,点击下载
截图202504271556126921.jpg

现象:

截图202504271612316023.jpg



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:19
  • 最近打卡:2025-04-28 15:35:40

8

主题

44

回帖

459

积分

版主

积分
459
发表于 4 天前 | 显示全部楼层
实验三: 中断方式,单片机USB中断接收服务函数收到命令后,printf_usb("Hello World !\r\n")或其他
1:库文件添加,将复制好的stc_usb_cdc_8h_xdata.LIB文件
添加到Source Group1中,具体步骤如实验一
截图202504271655295172.jpg

2:编译成功,0错误0警告
截图202504271703388355.jpg

3:打开最新版本的AIapp-ISP-V6.95M软件
选择单片机型号为:STC8H8K64U,打开hex,点击下载
截图202504271704343476.jpg


4:现象
截图202504271705282208.jpg
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 20:54 , Processed in 0.136323 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表