找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3550|回复: 1
打印 上一主题 下一主题
收起左侧

ch370 ch372调试例程

[复制链接]
跳转到指定楼层
楼主
CH370调试例程下载:
CH372调试例程.zip (23.1 KB, 下载次数: 26)


  1. #ifndef __CH372_H_
  2. #define __CH372_H_
  3. #ifndef uchar
  4. #define uchar unsigned char
  5. #endif

  6. #ifndef uint
  7. #define uint unsigned int
  8. #endif

  9. #define CMD_GET_STATUS         0x22
  10. #define CMD_RD_USB_DATA         0x28
  11. #define CMD_WR_USB_DATA         0x2B
  12. #define USB_INT_EP2_IN         0x0A
  13. #define CMD_UNLOCK_USB         0x23
  14. #define CMD_SET_USB_MODE 0x02
  15. #define USB_INT_EP2_OUT  0x02

  16. sbit CH372_INT=P3^2;
  17. sbit CH372_CS=P3^3;
  18. sbit CH372_RD=P3^4;
  19. sbit CH372_WR=P3^5;
  20. sbit CH372_A0=P3^6;

  21. void delay2us()
  22. {
  23. uchar i;
  24. for(i=0;i<2;i++)
  25. ;
  26. }
  27.         void delay50ms()
  28.                 {
  29.                 uchar  i,j;
  30.                 for(i=0;i<200;i++)
  31.                    for(j=0;j<250;j++)
  32.                    ;
  33.                 }
  34.                 void CH372_WRCMD(uchar cmd)
  35.                 {
  36.                 delay2us();
  37.                 P0=cmd;
  38.                 CH372_A0=1;
  39.                 CH372_RD=1;
  40.                 CH372_CS=0;
  41.                 CH372_WR=0;
  42.                 CH372_WR=1;
  43.                 CH372_CS=1;
  44.                 CH372_A0=0;
  45.                 P0=0XFF;
  46.                 delay2us();

  47.                 }
  48.                 void CH372_WRDAT(uchar dat)
  49.                 {
  50.                 P0=dat;
  51.                 CH372_A0=0;
  52.                 CH372_CS=0;
  53.                 CH372_WR=0;
  54.                 CH372_CS=0;
  55.                 CH372_WR=1;
  56.                 CH372_CS=1;
  57.                 P0=0XFF;
  58.                 }
  59.                 uchar CH372_REDAT()
  60.                 {
  61.                 uchar temp;
  62.                 P0=0XFF;
  63.                 CH372_A0=0;
  64.                 CH372_CS=0;
  65.                 CH372_RD=0;
  66.                 temp=P0;
  67.                 CH372_RD=1;
  68.                 CH372_CS=1;
  69.                 P0=0XFF;
  70.                 return temp;
  71.                 }

  72.                 void int0(void)interrupt 0 using 0
  73.                 {
  74.                 uchar i,temp,length;
  75.                 uchar data buf[64];
  76.                 CH372_WRCMD(CMD_GET_STATUS);        // CMD_GET_STATUS 发获取372的中断类型(状态)命令,并取消中断信号
  77.                 temp=CH372_REDAT();
  78.                 switch(temp)
  79.                 {
  80.                 case USB_INT_EP2_OUT:                          //如果是0x02,则是端点2的OUT事务
  81.                 CH372_WRCMD(CMD_RD_USB_DATA);         //CMD_RD_USB_DATA 发读取USB缓冲去数据命令,并释放缓冲区
  82.                 length=CH372_REDAT();
  83.                 for(i=0;i<length;i++)
  84.                 {
  85.                 buf[i]=CH372_REDAT();
  86.                 }
  87.                 CH372_WRCMD(CMD_WR_USB_DATA);                // CMD_WR_USB_DATA 发向端点2的发送缓冲区写数据命令  发发送取USB缓冲去数据命令,并释放缓冲区
  88.                 CH372_WRDAT(length);
  89.                 for(i=0;i<length;i++)
  90.                 CH372_WRDAT(~buf[i]);
  91.                 break;
  92.                 case USB_INT_EP2_IN:                                         //        USB_INT_EP2_IN         如果是0x0A,则是端点2的IN事务
  93.                 CH372_WRCMD(CMD_UNLOCK_USB);                          //CMD_UNLOCK_USB           发送释放缓冲区命令
  94.                 break;
  95.                 default:
  96.                 CH372_WRCMD(CMD_UNLOCK_USB);                 //CMD_UNLOCK_USB
  97.                 break;
  98.                     }
  99.                 }
  100. #endif
复制代码


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:127421 发表于 2017-7-27 15:21 | 只看该作者
有没有上位机呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表