usbinit(); // 初始化 USB 模块,并且会将【P30, P31】初始化为高阻输入,不影响 USB【D-, D+】通讯
EA = 1; // 使能总中断
复制代码
PSW2 |= 0X80;:这行代码用于使能访问扩展的特殊功能寄存器(XFR)。在一些嵌入式系统中,特殊功能寄存器需要通过特定配置才能访问。
usbinit();:初始化USB模块。这个函数通常会对USB硬件进行配置,并设置相关的引脚(如P30和P31)为高阻输入模式,以确保USB通信的正常进行。
EA = 1;:使能总中断。在嵌入式系统中,中断是处理异步事件的重要机制。使能总中断后,系统可以响应各种中断请求。
3. 主循环
c
while(1)
{
printfusb("Hello World !\r\n"); // 直接打印输出 “Hello World !” 到主机相应软件的 USB【CDC/HID-串口助手】
}
}
复制代码
while(1):这是一个无限循环,确保程序持续运行。
printfusb("Hello World !\r\n");:通过USB接口输出“Hello World!”字符串。printfusb是一个自定义的打印函数,它将字符串发送到主机的USB虚拟串口助手。\r\n表示回车和换行,确保每次输出的信息在新的一行显示。
4. 技术细节
USB通信:USB(Universal Serial Bus)是一种常见的串行通信协议,广泛应用于嵌入式系统和计算机外设之间的通信。在您的代码中,USB被配置为虚拟串口(CDC/HID),使得主机可以通过串口助手软件接收数据。
中断机制:在嵌入式系统中,中断用于处理异步事件。使能总中断后,系统可以响应外部事件(如USB数据传输)并执行相应的中断服务程序。
特殊功能寄存器(XFR):在一些嵌入式系统中,特殊功能寄存器用于配置和控制硬件模块。通过设置PSW2寄存器,开发者可以访问这些扩展的特殊功能寄存器。