📄 main.c
字号:
#ifndef __MAIN_C__
#define __MAIN_C__
#endif
#include "head.h"
#include "usbdef.h"
#include "ch375inc.h"
#include "uart.h"
#include "mcuFun.h"
#include "ch375.h"
uint8 eaCount, debug;
uint16 tCount;
uint8 idata ep1Buf[8];
unsigned char RECV_LEN; // 刚接收到的数据的长度
unsigned char RECV_BUFFER[CH375_MAX_DATA_LEN]; // 数据缓冲区,用于保存接收到的下传数据,长度为0到64字节
unsigned char *cmd_buf;
unsigned char *ret_buf;
unsigned char mVarSetupRequest; // USB请求码
unsigned char mVarSetupLength; // 后续数据长度
unsigned char *VarSetupDescr; // 描述符偏移地址
unsigned char VarUsbAddress ; //USB设备地址
bit CH375FLAGERR; //错误清0
bit CH375CONFLAG; //配置标志
mREQUEST_PACKET request; //usb请求数据缓冲区
//我的连接
//CH375 51
//D0-7 P0.0-7
//A0 P2.6
//RD RD
//WR WR
//CS P2.7
//INT INT0
//故
//0x7fff 命令端口, A0=1
//0x3fff 数据端口, A0=0
sbit led = P1^0;
sbit CH375_INT_WIRE = P3^2; // CH375中断请求输出,低电平有效
//-----------------------------------
//串行数据接收程序
//-----------------------------------
void receive(void)
{
unsigned int count;
unsigned char buf;
RECV_LEN=0;
cmd_buf = RECV_BUFFER; // 接收缓冲区
while( 1 )
{
RI=0;
*cmd_buf = SBUF;
cmd_buf++;
RECV_LEN++;
if( RECV_LEN == 64 )
{
while( 1 )
{
count=10000;
while( RI==0 )
{
count--;
if( count==0 )
return;
}
RI=0;
buf=SBUF;
}
}
count=10000;
while( RI==0 )
{
count--;
if( count==0 )
return;
}
}
}
void main(void)
{
tOut t;
debug=0x00;
eaCount=0;
led = 0;
ComInit();
uartPutStr("///////////////////////////////////////////////////////////////////////////////\n\r");
uartPutStr(__DATE__);
uartPutStr("\n\r");
uartPutStr(__TIME__);
uartPutStr("\n\r");
disConnect();
CH375_Init( ); // 初始化CH375
uartPrint("ch375 inited!\n\r", NULL, 0);
while ( 1 )
{
if(w(&t, 5))
{
ep1Buf[0]=0x02;
ep1Buf[0]=0x00;
ep1Buf[0]=0x00;
reset(&t);
led=!led;
//ep1Up(3);
}
if( RI==1 ) // 从串口接收到的数据
{
receive();
uartPrint("uart rec!\n\r", NULL, 0);
}
CH375_INT_WIRE=1;
if( CH375_INT_WIRE==0 ) // 从USB设备接收到数据
{
mCh375Interrupt();
// 将从USB设备接收到的数据发送到串口
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -