用的是沁恒CH552e淘宝买的评估板,USB中断上传程序用的是沁恒提供的做了些修改。程序使用2个端点一个,端点1作为普通键盘,端点2作为多媒体按键,有详细注释多媒体按键报告,以下是主函数内容。
/****主函数****/
main()
{
CfgFsys( ); //CH552时钟选择配置
mDelaymS(5); //修改主频等待内部晶振稳定,必加
ConfigT0(2); //配置2ms T0中断
USBDeviceInit(); //USB设备模式初始化
EA = 1; //允许单片机中断
UEP1_T_LEN = 0; //预使用发送长度一定要清空
UEP2_T_LEN = 0; //清空端点2发送长度
FLAG = 0; //清空USB中断传输完成标志
Ready = 0;
LED_VALID = 1; //给一个默认值
P1_DIR_PU &= 0xE0; //在MOD_OC为0时 p1.5 p1.6 P1.7为推挽输出
P1_MOD_OC = P1_MOD_OC & ~0xE0; //3个口的bit4 = 0 p1.5 p1.6 P1.7设置为推挽输出
P1_DIR_PU = P1_DIR_PU | 0xE0; //3个口的bit4 = 1 p1.5 p1.6 P1.7设置为输出
key1 = 1;
key2 = 1;
key3 = 1;
while(1)
{
KeyDrive(); //按键驱动
}
}