标题:
ch370 ch372调试例程
[打印本页]
作者:
cvhnh
时间:
2016-11-20 18:50
标题:
ch370 ch372调试例程
CH370调试例程下载:
CH372调试例程.zip
(23.1 KB, 下载次数: 26)
2016-11-20 18:49 上传
点击文件名下载附件
下载积分: 黑币 -5
0.png
(65.74 KB, 下载次数: 68)
下载附件
2017-1-3 21:45 上传
#ifndef __CH372_H_
#define __CH372_H_
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#define CMD_GET_STATUS 0x22
#define CMD_RD_USB_DATA 0x28
#define CMD_WR_USB_DATA 0x2B
#define USB_INT_EP2_IN 0x0A
#define CMD_UNLOCK_USB 0x23
#define CMD_SET_USB_MODE 0x02
#define USB_INT_EP2_OUT 0x02
sbit CH372_INT=P3^2;
sbit CH372_CS=P3^3;
sbit CH372_RD=P3^4;
sbit CH372_WR=P3^5;
sbit CH372_A0=P3^6;
void delay2us()
{
uchar i;
for(i=0;i<2;i++)
;
}
void delay50ms()
{
uchar i,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++)
;
}
void CH372_WRCMD(uchar cmd)
{
delay2us();
P0=cmd;
CH372_A0=1;
CH372_RD=1;
CH372_CS=0;
CH372_WR=0;
CH372_WR=1;
CH372_CS=1;
CH372_A0=0;
P0=0XFF;
delay2us();
}
void CH372_WRDAT(uchar dat)
{
P0=dat;
CH372_A0=0;
CH372_CS=0;
CH372_WR=0;
CH372_CS=0;
CH372_WR=1;
CH372_CS=1;
P0=0XFF;
}
uchar CH372_REDAT()
{
uchar temp;
P0=0XFF;
CH372_A0=0;
CH372_CS=0;
CH372_RD=0;
temp=P0;
CH372_RD=1;
CH372_CS=1;
P0=0XFF;
return temp;
}
void int0(void)interrupt 0 using 0
{
uchar i,temp,length;
uchar data buf[64];
CH372_WRCMD(CMD_GET_STATUS); // CMD_GET_STATUS 发获取372的中断类型(状态)命令,并取消中断信号
temp=CH372_REDAT();
switch(temp)
{
case USB_INT_EP2_OUT: //如果是0x02,则是端点2的OUT事务
CH372_WRCMD(CMD_RD_USB_DATA); //CMD_RD_USB_DATA 发读取USB缓冲去数据命令,并释放缓冲区
length=CH372_REDAT();
for(i=0;i<length;i++)
{
buf[i]=CH372_REDAT();
}
CH372_WRCMD(CMD_WR_USB_DATA); // CMD_WR_USB_DATA 发向端点2的发送缓冲区写数据命令 发发送取USB缓冲去数据命令,并释放缓冲区
CH372_WRDAT(length);
for(i=0;i<length;i++)
CH372_WRDAT(~buf[i]);
break;
case USB_INT_EP2_IN: // USB_INT_EP2_IN 如果是0x0A,则是端点2的IN事务
CH372_WRCMD(CMD_UNLOCK_USB); //CMD_UNLOCK_USB 发送释放缓冲区命令
break;
default:
CH372_WRCMD(CMD_UNLOCK_USB); //CMD_UNLOCK_USB
break;
}
}
#endif
复制代码
作者:
chjx0131
时间:
2017-7-27 15:21
有没有上位机呀
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1