一起学 AiCube之AI8H8K64U应用, printf_usb("Hello World !\r\n");
实验一:直接输出,printf_usb("Hello World !\r\n")实验二:查询方式,查询到电脑命令后,
printf_usb("Hello World !\r\n")或其他
实验三:中断方式,单片机USB中断接收服务函数收到命令后,
printf_usb("Hello World !\r\n")或其他
792
部分手敲代码可从下面直接拷贝
https://www.stcaimcu.com/data/attachment/forum/202506/09/101035xugbwmtmb9dxgbwf.jpg
https://www.stcaimcu.com/data/attachment/forum/202506/09/101615sgggvg22a7vc2hju.jpg
#include"ai8051u.h" //头文件不分大小写,但关键字分大小写
#include"ai_usb.h" //USB库和USB虚拟设备的头文件
voidmain(void)
{
EAXFR = 1; //允许访问扩展的特殊寄存器,XFR
WTST = 0; //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
CKCON = 0; //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
P0M0 = 0x00; P0M1 = 0x00; //初始化P0口为准双向口模式
P1M0 = 0x00; P1M1 = 0x00; //初始化P1口为准双向口模式
P2M0 = 0x00; P2M1 = 0x00; //初始化P2口为准双向口模式
P3M0 = 0x00; P3M1 = 0x00; //初始化P3口为准双向口模式
P4M0 = 0x00; P4M1 = 0x00; //初始化P4口为准双向口模式
P5M0 = 0x00; P5M1 = 0x00; //初始化P5口为准双向口模式
usb_init();
//初始化USB模块,并且会将【P3.0,P3.1】初始化为高阻输入,不影响USB【D-,D+】通讯
EA = 1; //使能总中断
while (1)
{
printf_usb("Hello World !\r\n");
//\r是回车,并跳到行首,\n是换行,就是换到下一行;\r\n不要交换次序
}
}
https://www.stcaimcu.com/data/attachment/forum/202506/09/101709bhwlxflcwlxwhsjs.jpg
#include "ai8051u.h"
#include "ai_usb.h"
void main(void)
{
EAXFR = 1; //允许访问扩展的特殊寄存器,XFR
WTST = 0; //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
CKCON = 0; //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
P0M0 = 0x00; P0M1 = 0x00; //初始化P0口为准双向口模式
P1M0 = 0x00; P1M1 = 0x00; //初始化P1口为准双向口模式
P2M0 = 0x00; P2M1 = 0x00; //初始化P2口为准双向口模式
P3M0 = 0x00; P3M1 = 0x00; //初始化P3口为准双向口模式
P4M0 = 0x00; P4M1 = 0x00; //初始化P4口为准双向口模式
P5M0 = 0x00; P5M1 = 0x00; //初始化P5口为准双向口模式
P6M0 = 0x00; P6M1 = 0x00; //初始化P6口为准双向口模式
P7M0 = 0x00; P7M1 = 0x00; //初始化P7口为准双向口模式
usb_init(); //初始化USB模块
EA = 1; //使能全局中断
while (1)
{
if (bUsbOutReady) //查询是否有接收到数据
{
if (UsbOutBuffer == 6)
printf_usb("Hello World !\r\n");
else if (UsbOutBuffer == 7)
printf_usb("China !\r\n");
usb_OUT_done(); //当前包的数据处理完成
}
}
}
https://www.stcaimcu.com/data/attachment/forum/202506/09/100955kq0xx1xx31xstsyr.jpg
#include "ai8051u.h"
#include "ai_usb.h"
////////////////////////////////////////
// USB设备接收数据中断回调程序
////////////////////////////////////////
void USBLIB_OUT_Callback(void)
{
if (UsbOutBuffer == 6)
printf_usb("Hello World !\r\n"); //接收到数据6后打印“Hello World !”
else if (UsbOutBuffer == 7)
printf_usb("China !\r\n"); //接收到数据7后打印“China !”
}
void main(void)
{
EAXFR = 1; //允许访问扩展的特殊寄存器,XFR
WTST = 0; //设置取程序代码等待时间,赋值为 0 表示不等待,程序以最快速度运行
CKCON = 0; //设置访问片内的 xdata 速度,赋值为 0 表示用最快速度访问,不增加额外的等待时间
P0M0 = 0x00; P0M1 = 0x00; //初始化P0口为准双向口模式
P1M0 = 0x00; P1M1 = 0x00; //初始化P1口为准双向口模式
P2M0 = 0x00; P2M1 = 0x00; //初始化P2口为准双向口模式
P3M0 = 0x00; P3M1 = 0x00; //初始化P3口为准双向口模式
P4M0 = 0x00; P4M1 = 0x00; //初始化P4口为准双向口模式
P5M0 = 0x00; P5M1 = 0x00; //初始化P5口为准双向口模式
P6M0 = 0x00; P6M1 = 0x00; //初始化P6口为准双向口模式
P7M0 = 0x00; P7M1 = 0x00; //初始化P7口为准双向口模式
usb_init(); //初始化USB模块
set_usb_OUT_callback(USBLIB_OUT_Callback);//设置USB中断回调函数
EA = 1; //使能全局中断
while (1);
}
AI Cube与STC8H8K64U自动开发指南
在2023年,随着人工智能技术的快速发展,AI Cube作为一款集人工智能与物联网于一体的智能设备,因其高性能、便携性和强大的计算能力,逐渐成为物联网领域的重要工具。为了实现AI Cube的自动开发和调试,我们可以采用多种开发方法,包括直接输出、查询方式、中断方式等。以下将详细介绍这些方法,并提供具体的代码示例。
实验一:直接输出
实验目的
通过直接输出功能,实现AI Cube的简单功能输出,如Hello World。
实验步骤
1. 在AI Cube上安装并启动AI8051uh控制器和AIUSBH库。
2. 使用AI8051uh的UART接口输出Hello World信息。
代码示例
c
void main(void)
{
// 使用AI8051uh的UART接口输出Hello World信息
AI8051uh::UART::write("Hello World !\r\n");
}
注意事项
直接输出功能在AI Cube中支持多种接口,包括UART、SPI和I2C。在使用时,需确保设置正确并初始化控制器。
实验二:查询方式
实验目的
通过查询功能,实现AI Cube的简单功能查询,如查询电脑命令。
实验步骤
1. 在AI Cube上安装并启动AI8051uh控制器。
2. 使用AI8051uh的UART接口输入电脑命令,如“ls”、“echo”等。
代码示例
c
void main(void)
{
// 使用AI8051uh的UART接口输入电脑命令
AI8051uh::UART::write("ls\n");
}
注意事项
在执行命令时,需确保AI Cube与电脑连接正确,并且电脑命令符合AI Cube的兼容性要求。
实验三:中断方式
实验目的
通过中断方式,实现AI Cube的简单功能中断,如中断视频信号。
实验步骤
1. 在AI Cube上安装并启动AI8051uh控制器。
2. 使用AI8051uh的UART接口接收AI8051uh的中断服务函数(RSB)。
代码示例
c
void main(void)
{
// 使用AI8051uh的UART接口接收AI8051uh的中断服务函数(RSB)
AI8051uh::UART::write("RSB\n");
}
注意事项
中断方式在AI Cube中支持多种接口,包括UART、SPI和I2C。在使用时,需确保设置正确并初始化控制器。
其他注意事项
1. 硬件连接
在执行上述实验时,务必确保AI Cube与电脑或其他设备正确连接,连接线端子和电源必须牢固固定。
2. 初始化控制器
在启动AI Cube之前,需确保AI8051uh控制器和AIUSBH库已经完成初始化。
3. 代码验证
在使用AI Cube时,建议对生成的代码进行验证,确保代码的语法正确无误。
其他资源
代码示例链接:https://www.stc-cu.com
视频教程:https://www.aliyun.com
通过以上方法,您可以轻松实现AI Cube的简单功能开发和调试。如果需要更复杂的功能开发,可以进一步学习AI Cube的高级开发方法。
[本文内容由国芯人工智能辅助生成,仅供参考]
页:
[1]