一起学 AiCube之AI8H8K64U应用, printf_usb("Hello World !\r\n");
一起学 AiCube之AI8H8K64U应用, printf_usb("Hello World !\r\n");学习视频如下:
#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不要交换次序
}
}
#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(); //当前包的数据处理完成
}
}
}
#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);
}
实验一:基于Arduino的微控制器项目
在本次实验中,我们通过使用Arduino board进行微控制器开发,旨在实现一个简单的Hello World应用程序。实验分为以下几个步骤:
1. 硬件准备与选择:首先,我们需要选择合适的Arduino型号和对应的 board。常见的Arduino型号包括 Uno系列、TZK系列等,对应的board包括 Uno、T4、T1等。
2. 硬件安装与连接:安装硬件后,我们需要将Arduino与board进行连接。通常,可以通过USB接口进行连接,确保两者的电源、电源管理器、总线等部分能够正确兼容。
3. 软件开发与编译:使用Arduino IDE进行软件开发,编写并编译代码。在我们的案例中,代码非常简单,只需一个Sudo命令就可以启动程序并显示Hello World。
4. 硬件调试与测试:在开发完成后,我们需要进行硬件调试,确保Arduino和board能够正常工作。这包括检查电源管理器的运行状态、总线连接的稳定性等。
5. 结果输出与保存:完成开发后,我们需要将程序的输出结果保存为可执行文件或通过USB传输到电脑进行验证。
实验的关键在于通过Arduino进行微控制器开发,掌握硬件连接、软件开发以及硬件调试的基本技能。通过这次实验,我们不仅掌握了Arduino的基本操作,还对微控制器的设计与实现有了更深入的理解。
[本文内容由国芯人工智能辅助生成,仅供参考]
页:
[1]