找回密码
 立即注册

QQ登录

只需一步,快速开始

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

谁成功将STC8H8K64U单片机芯片写成USB接口仿真芯片?

[复制链接]
跳转到指定楼层
楼主
STC8H8K64U单片机,我用串口方式P3.0/3.1写成了串口调试的仿真芯片,可以在Keil下联机调试程序。但写的使用USB接口的仿真芯片,软件提示操作成功,但插上电脑的USB口就是不见仿真器的CDC串口出现,无法当作仿真器。使用芯片的USB口表面也可操作写仿真器,实际就是不能使用。片子是买的STC的打狗棒成品,下载程序正常,无论是串口模式还是USB模式,运行正常。就是无法写成USB接口仿真器,无论是串口写还是USB接口写均不行。下载稍作修改的官方USB转CDC串口程序,可模拟出CDC串口。串口助手可打开进行通讯。好像就是USB接口的仿真器不行?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1034262 发表于 2023-3-14 18:36 | 只看该作者
我使用STC8H手册附录J.5设置仿真没问题。
回复

使用道具 举报

板凳
ID:106977 发表于 2023-3-14 21:01 | 只看该作者
请问是设置成USB接口的仿真芯片吗?我设置成串口P3.0/3.1仿真可以,但设置成USB接口的仿真芯片不行。
回复

使用道具 举报

地板
ID:106977 发表于 2023-3-14 21:25 | 只看该作者
刚才注意到手册上说,STC8H8K64U只有B/C/D版本才支持USB接口仿真调试,A版不支持。请问怎么知道芯片是哪个版本?我的打狗棒是前不久从某一个宝上买的,
回复

使用道具 举报

5#
ID:525244 发表于 2023-3-15 14:49 来自手机 | 只看该作者
lgwd 发表于 2023-3-14 21:25
刚才注意到手册上说,STC8H8K64U只有B/C/D版本才支持USB接口仿真调试,A版不支持。请问怎么知道芯片是哪个 ...

是不是ISP搜索单片机的时候,就会显示版本?
回复

使用道具 举报

6#
ID:155507 发表于 2023-3-15 16:41 | 只看该作者
lgwd 发表于 2023-3-14 21:01
请问是设置成USB接口的仿真芯片吗?我设置成串口P3.0/3.1仿真可以,但设置成USB接口的仿真芯片不行。


可以呀,我用stc_usb_cdc.hex。


  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC 1T Series MCU Demo Programme -------------------------------*/
  4. /* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
  5. /*---------------------------------------------------------------------*/

  6. /*************  功能说明    **************

  7. 本例程基于STC8H8K64U核心转接板(打狗棒)进行编写测试。

  8. 使用USB线连接核心板USB接口与电脑;

  9. MCU通过USB CDC(Communication Device Class)协议识别为串口设备;

  10. 使用串口助手打开CDC虚拟串口,然后向MCU发送数据,MCU返回接收到的数据到串口助手;

  11. 数据长度限制在64字节以内。

  12. 如果data空间不够,可将Memory Model设为Large模式,然后使用“stc_usb_cdc_8h_xdata.lib”库函数。

  13. 下载时, 选择时钟 24MHZ (用户可自行修改频率)。

  14. ******************************************/

  15. #include "stc.h"
  16. #include "usb.h"

  17. //USB调试及复位所需定义
  18. char *USER_DEVICEDESC = NULL;
  19. char *USER_PRODUCTDESC = NULL;
  20. char *USER_STCISPCMD = "@STCISP#";                      //设置自动复位到ISP区的用户接口命令

  21. void sys_init();

  22. void main()
  23. {
  24.     sys_init();  //系统初始化
  25.     usb_init();  //USB CDC 接口配置
  26.     IE2 |= 0x80; //IE2相关的中断位操作使能后,需要重新设置EUSB
  27.     EA = 1;
  28.    
  29.     while (1)
  30.     {
  31.         if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
  32.             continue;

  33.         if (bUsbOutReady)
  34.         {
  35.             usb_OUT_done();    //接收应答(固定格式)
  36.             
  37.             printf("OutNumber=%bd\r\n",OutNumber);  //使用 printf 函数打印接收数据长度

  38.             USB_SendData(UsbOutBuffer,OutNumber);  //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
  39.         }
  40.     }
  41. }

  42. void sys_init()
  43. {
  44.     P_SW2 |= 0x80; //扩展寄存器(XFR)访问使能

  45.     P0M1 = 0x00;   P0M0 = 0x00;   //设置为准双向口
  46.     P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口
  47.     P2M1 = 0x00;   P2M0 = 0x00;   //设置为准双向口
  48.     P3M1 = 0x00;   P3M0 = 0x00;   //设置为准双向口
  49.     P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
  50.     P5M1 = 0x00;   P5M0 = 0x00;   //设置为准双向口
  51.     P6M1 = 0x00;   P6M0 = 0x00;   //设置为准双向口
  52.     P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口

  53.     //====== USB 初始化 ======
  54.     P3M0 &= ~0x03;
  55.     P3M1 |= 0x03;
  56.    
  57.     IRC48MCR = 0x80;
  58.     while (!(IRC48MCR & 0x01));
  59.    
  60.     USBCLK = 0x00;
  61.     USBCON = 0x90;
  62.     //========================
  63. }
复制代码



回复

使用道具 举报

7#
ID:155507 发表于 2023-3-15 16:56 | 只看该作者
zgrfox110 发表于 2023-3-15 14:49
是不是ISP搜索单片机的时候,就会显示版本?

不会显示版本

正在检测目标单片机 ...
  单片机型号: STC8H8K64U
  固件版本号: 7.4.6U

当前芯片的硬件选项为:
  . 系统ISP工作频率: 24.000MHz
  . 内部IRC振荡器的频率: 12.000MHz
  . 掉电唤醒定时器的频率: 34.650KHz
  . 振荡器放大增益使能
  . 用户EEPROM大小被设置为 0.5 K
  . P3.2和P3.3与下次下载无关
  . 上电复位时增加额外的复位延时
  . 复位引脚仍为复位脚
  . 检测到低压时不复位,可产生低压中断
  . 低压检测门槛电压 : 2.00 V
  . 上电复位时,硬件不启动内部看门狗
  . 上电自动启动内部看门狗时的预分频数为 : 256
  . 空闲状态时看门狗定时器停止计数
  . 下次下载用户程序时,将用户EEPROM区一并擦除
  . 下次下载用户程序时,没有相关的端口控制485
  . 下次下载时不需要校验下载口令
  . 未使能芯片的仿真功能
  . 内部参考电压: 1190 mV (参考范围: 1100~1300mV)
  . 内部安排测试时间: 2022年8月15日

  单片机型号: STC8H8K64U
  固件版本号: 7.4.6U

回复

使用道具 举报

8#
ID:155507 发表于 2023-3-15 16:58 | 只看该作者
lgwd 发表于 2023-3-14 21:25
刚才注意到手册上说,STC8H8K64U只有B/C/D版本才支持USB接口仿真调试,A版不支持。请问怎么知道芯片是哪个 ...

怎么知道芯片是哪个版本  B



回复

使用道具 举报

9#
ID:106977 发表于 2023-3-16 21:04 | 只看该作者
我买的打狗棒上的芯片只看见STC三个字,其它完全看不清,不过问题解决了。

STC8H8K64U建立USB接口仿真器.jpg (1.41 MB, 下载次数: 69)

STC8H8K64U建立USB接口仿真器.jpg
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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