这个,你做过吗?100分 ,在线等

yanglin5131421 2007-05-05 11:03:03
哪位高手做过CH375芯片的U盘通讯卡程序,求一CH375芯片初始化的程序!
哪位有,100分全部送上
...全文
264 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyangc 2009-10-10
  • 打赏
  • 举报
回复
做过,给你参考一下
void CH375_WR_CMD_PORT( unsigned char cmd ) { /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */
delay2us();
CH375_CMD_PORT=cmd;
delay2us();
}

void CH375_WR_DAT_PORT( unsigned char dat ) { /* 向CH375的数据端口写入数据,周期不小于1.5uS,如果单片机较快则延时 */
CH375_DAT_PORT=dat;
delay1us(); /* 因为MCS51单片机较慢所以实际上无需延时 */
}

unsigned char CH375_RD_DAT_PORT() { /* 从CH375的数据端口读出数据,周期不小于1.5uS,如果单片机较快则延时 */
delay1us(); /* 因为MCS51单片机较慢所以实际上无需延时 */
return( CH375_DAT_PORT );
}

/* 等待CH375中断并获取状态 */
unsigned char mWaitInterrupt() { /* 主机端等待操作完成, 返回操作状态 */
while( CH375_INT_WIRE ); /* 查询等待CH375操作完成中断(INT#低电平) */
CH375_WR_CMD_PORT( CMD_GET_STATUS ); /* 产生操作完成中断, 获取中断状态 */
return( CH375_RD_DAT_PORT( ) );
/* c = CH375_RD_DAT_PORT( ); 返回中断状态 */
/* if ( c == USB_INT_DISCONNECT ) ?; 检测到USB设备断开事件 */
/* else if ( c == USB_INT_CONNECT ) ?; 检测到USB设备连接事件 */
}

/* 设置CH375为USB主机方式 */
unsigned char mCH375Init( )
{
unsigned char i;
#ifdef TEST_CH375_PORT
unsigned char c;
CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 测试工作状态 */
CH375_WR_DAT_PORT( 0x55 ); /* 测试数据 */
c = CH375_RD_DAT_PORT( ); /* 返回数据应该是测试数据取反 */
if ( c != 0xaa ) { /* CH375出错 */
for ( i = 100; i != 0; i -- ) { /* 强制数据同步 */
CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* CH375执行硬件复位 */
c = CH375_RD_DAT_PORT( ); /* 延时 */
}
mDelaymS( 50 ); /* 延时至少30mS */
}
tianchunyu 2007-05-07
  • 打赏
  • 举报
回复
http://www.ilib.cn/A-zdhyb200502011.html
来这里,肯定有,给我分吧
whyacinth 2007-05-06
  • 打赏
  • 举报
回复
tong xuexi
seedundersnow 2007-05-05
  • 打赏
  • 举报
回复
o xuexi
shen_guang_wu 2007-05-05
  • 打赏
  • 举报
回复
官方网站上有很全面的资料啊!
http://winchiphead.com/download/index.htm

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧