void int0(void) interrupt 0 using 0
{
unsigned char i,temp,length;
unsigned char data buf[64]; //接受到的数据存放的缓冲数组,64个位置
CH375_WRCMD(CMD_GET_STATUS); //发获取375的中断类型(状态)命令,并取消中断信号
temp=CH375_REDAT(); //读取中断类型(状态)值
switch(temp) //判断中断类型(状态),具体区分请见375头文件中的定义
{
case USB_INT_EP2_OUT:
//如果是0x02,则是端点2的OUT事务(接收到数据,OUT成功),OUT是相对于主机端计算机来说的
CH375_WRCMD(CMD_RD_USB_DATA); //发读取USB缓冲区数据命令,并释放缓冲区
length=CH375_REDAT(); //先读取数据长度
for(i=0;i<length;i++) //根据数据长度,读取所有值
{
buf[i ]=CH375_REDAT(); //读取的数据放入缓冲数组
}
/*以下为向主机端计算机发送接收到的数据*/
CH375_WRCMD(CMD_WR_USB_DATA7); //发向端点2的发送缓冲区写数据命令
CH375_WRDAT(length); //先写入数据的长度
for(i=0;i<length;i++) //根据长度,依次发送要发送的数据
CH375_WRDAT(buf[i ]);
break; //跳出
case USB_INT_EP2_IN: //如果是0x0A,则是端点2的IN事务(发送完数据,IN成功),IN是相对于主机端计算机来说的
CH375_WRCMD(CMD_UNLOCK_USB); //发送释放缓冲区命令
break; //跳出
default:
CH375_WRCMD(CMD_UNLOCK_USB);
break;
}
}
/***********************************************************************************
****函数名称:主函数
****函数作用:
****函数描述:
************************************************************************************/
void main(void)
{
delay50ms(); //延时50ms
CH375_WRCMD(CMD_SET_USB_ID);
CH375_WRDAT(0x12); // VID低8位
CH375_WRDAT(0x12); // VID高8位
CH375_WRDAT(0x12); // PID低8位
CH375_WRDAT(0x12); // PID高8位
CH375_WRCMD(CMD_SET_USB_MODE); //设置工作模式
CH375_WRDAT(2); //设置为内置固件模式
IT0=0; //设置外部中断0为低电平出发方式
EX0=1; //使能外部中断0
EA=1; //使能所有中断
while(1)
{
if(flag==49)
{
delay50ms();
start_temp_sensor();
temp=read_temp();
shi=temp/10;
ge=temp%10;
/*以下为向主机端计算机发送数据*/
// if(temp<85)
// {
CH375_WRCMD(CMD_WR_USB_DATA7); //发向端点2的发送缓冲区写数据命令
CH375_WRDAT(2);
CH375_WRDAT(shi);
CH375_WRDAT(ge);
// }
}
}
}
CH375_WRCMD(CMD_SET_USB_ID);
CH375_WRDAT(0x11); // VID低8位
CH375_WRDAT(0x11); // VID高8位
CH375_WRDAT(0x11); // PID低8位
CH375_WRDAT(0x11); // PID高8位
把这个删了就可以识别了
离线