找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 649|回复: 24
收起左侧

STC8h单片机烧录问题 一直就是“通信超时”

  [复制链接]
ID:134430 发表于 2024-12-4 22:31 | 显示全部楼层 |阅读模式
在网上买了这款 ”核心板“ ,
截图20.png

烧录程序老是提示:
截图19.png


资料看了多少遍,网上说的也找了不少,弄了很长时间,就是不行,
期间只有一次烧录成功,结果还不能运行,以后到现在一直就是“通信超时”。

哪位老兄弄过,指点指点好吗?
先谢谢!!!
回复

使用道具 举报

ID:468878 发表于 2024-12-4 23:34 | 显示全部楼层
换数据线、不行就换芯片。不过STC8的芯片还是比较抗造的。可能是线的问题。
回复

使用道具 举报

ID:1138628 发表于 2024-12-5 03:18 | 显示全部楼层
如果用的是STC-ISP,有可能是左上单片机型号没有选择对,如果ISP版本比较老,还有可能是串口不对
回复

使用道具 举报

ID:1133081 发表于 2024-12-5 07:04 | 显示全部楼层
如果操作没有错误,90%是USB信号线质量不良导致下载失败。
回复

使用道具 举报

ID:136485 发表于 2024-12-5 08:06 | 显示全部楼层
换最新的STC-ISP软件,最新的软件会出现几个选项,有两个串口,还有一个USB
回复

使用道具 举报

ID:134430 发表于 2024-12-5 10:20 | 显示全部楼层
先谢谢几位楼上老兄!!!
问题今晨无意中解决了,以前用stc89c52时,总是有“给单片机上电”的提示,
现在这个板子没有提示了,还跟过去一样等提示,那就是“超时”的结果,
今晨,我在“正在检查目标单片机”时,迅速按一次断电按钮试试,居然解决了问题。

现在又有个新问题不懂:
所有 i/o 都配置成准双向口,烧录后,所有口都是高阻状态,程序不能运行。
不是跟stc89c52一样所有口是高电平5v吗?不明白了。
请各位继续帮助,谢谢!!!
回复

使用道具 举报

ID:1109793 发表于 2024-12-5 10:33 | 显示全部楼层
wh8010jky 发表于 2024-12-5 10:20
先谢谢几位楼上老兄!!!
问题今晨无意中解决了,以前用stc89c52时,总是有“给单片机上电”的提示,
现 ...

复位后是高祖,是否运行和这个没关系。运行后可以设置口的状态。
回复

使用道具 举报

ID:134430 发表于 2024-12-5 10:42 | 显示全部楼层

RE: STC8h单片机烧录问题 一直就是“通信超时”

先谢谢楼上几位老兄!!!
今晨,无意中解决了问题,以前用stc89c52,  烧录时总有提示:给单片机上电,
现在这块板子,没有了这个提示,再等下去就是“超时”的结果。
今晨,在出现“正在检测目标单片机”时,不等了,迅速按一下断电上电按钮试试,
居然烧录成功,解决了问题。

现在又有新问题了:
烧录成功后,所有的 i/o 口都是高阻状态,程序不能运行。
不是应该像stc89c52那样,所有的口都是高电平5v?不明白了,
还请几位老兄继续帮助,谢谢!!!

说明一下:先前发过回帖,未见系统消息,怀疑发回帖不成功,所以在发一次。
回复

使用道具 举报

ID:1133081 发表于 2024-12-5 13:21 | 显示全部楼层
wh8010jky 发表于 2024-12-5 10:42
先谢谢楼上几位老兄!!!
今晨,无意中解决了问题,以前用stc89c52,  烧录时总有提示:给单片机上电,
...

此芯片默认除P3.0、3.1为准双向模式外其它端口都是高阻模式,要在程序开始初始化端口模式。
回复

使用道具 举报

ID:134430 发表于 2024-12-5 15:43 | 显示全部楼层
WL0123 发表于 2024-12-5 13:21
此芯片默认除P3.0、3.1为准双向模式外其它端口都是高阻模式,要在程序开始初始化端口模式。

已初始化了,而且在keil通过了,i/o配置的语句就是从keil 的例程复制的。现在测试 i/o 口没有反应,程序不能运行。
截图28.png

回复

使用道具 举报

ID:134430 发表于 2024-12-5 15:47 | 显示全部楼层
WL0123 发表于 2024-12-5 13:21
此芯片默认除P3.0、3.1为准双向模式外其它端口都是高阻模式,要在程序开始初始化端口模式。

是不是需要配置内部4.1k上拉电阻?
回复

使用道具 举报

ID:1109793 发表于 2024-12-5 16:29 | 显示全部楼层
wh8010jky 发表于 2024-12-5 15:47
是不是需要配置内部4.1k上拉电阻?

可以试试
回复

使用道具 举报

ID:134430 发表于 2024-12-5 16:56 | 显示全部楼层

使了,没用。
截图29.png

截图30.png

回复

使用道具 举报

ID:134430 发表于 2024-12-5 19:28 | 显示全部楼层

使了,没用。
截图29.png
截图30.png

回复

使用道具 举报

ID:57657 发表于 2024-12-5 20:16 | 显示全部楼层

XFR区的扩展SFR寄存器需要加一行 P_SW2 |= 0x80; 才可以操作。
回复

使用道具 举报

ID:1133081 发表于 2024-12-5 21:13 | 显示全部楼层
wh8010jky 发表于 2024-12-5 15:47
是不是需要配置内部4.1k上拉电阻?

不需要配置内部4.1k上拉电阻,IO口测试程序如下:
  1. #include "reg51.h"

  2. sfr P0M1 = 0x93;
  3. sfr P0M0 = 0x94;
  4. sfr P1M1 = 0x91;
  5. sfr P1M0 = 0x92;
  6. sfr P2M1 = 0x95;
  7. sfr P2M0 = 0x96;
  8. sfr P3M1 = 0xb1;
  9. sfr P3M0 = 0xb2;
  10. sfr P4M1 = 0xb3;
  11. sfr P4M0 = 0xb4;
  12. sfr P5M1 = 0xC9;
  13. sfr P5M0 = 0xCA;
  14. sfr P6M1 = 0xCB;
  15. sfr P6M0 = 0xCC;
  16. sfr P7M1 = 0xE1;
  17. sfr P7M0 = 0xE2;

  18. sbit P00 = P0^0;
  19. sbit P01 = P0^1;
  20. sbit P02 = P0^2;
  21. sbit P03 = P0^3;
  22. sbit P04 = P0^4;
  23. sbit P05 = P0^5;
  24. sbit P06 = P0^6;
  25. sbit P07 = P0^7;
  26. sbit P10 = P1^0;
  27. sbit P11 = P1^1;
  28. sbit P12 = P1^2;
  29. sbit P13 = P1^3;
  30. sbit P14 = P1^4;
  31. sbit P15 = P1^5;
  32. sbit P16 = P1^6;
  33. sbit P17 = P1^7;
  34. sbit P20 = P2^0;
  35. sbit P21 = P2^1;
  36. sbit P22 = P2^2;
  37. sbit P23 = P2^3;
  38. sbit P24 = P2^4;
  39. sbit P25 = P2^5;
  40. sbit P26 = P2^6;
  41. sbit P27 = P2^7;
  42. sbit P30 = P3^0;
  43. sbit P31 = P3^1;
  44. sbit P32 = P3^2;
  45. sbit P33 = P3^3;
  46. sbit P34 = P3^4;
  47. sbit P35 = P3^5;
  48. sbit P36 = P3^6;
  49. sbit P37 = P3^7;

  50. sfr P4   = 0xC0;
  51. sbit P40 = P4^0;
  52. sbit P41 = P4^1;
  53. sbit P42 = P4^2;
  54. sbit P43 = P4^3;
  55. sbit P44 = P4^4;
  56. sbit P45 = P4^5;
  57. sbit P46 = P4^6;
  58. sbit P47 = P4^7;

  59. sfr P5   = 0xC8;
  60. sbit P50 = P5^0;
  61. sbit P51 = P5^1;
  62. sbit P52 = P5^2;
  63. sbit P53 = P5^3;
  64. sbit P54 = P5^4;
  65. sbit P55 = P5^5;
  66. sbit P56 = P5^6;
  67. sbit P57 = P5^7;

  68. sfr P6   = 0xE8;
  69. sbit P60 = P6^0;
  70. sbit P61 = P6^1;
  71. sbit P62 = P6^2;
  72. sbit P63 = P6^3;
  73. sbit P64 = P6^4;
  74. sbit P65 = P6^5;
  75. sbit P66 = P6^6;
  76. sbit P67 = P6^7;

  77. sfr P7   = 0xF8;
  78. sbit P70 = P7^0;
  79. sbit P71 = P7^1;
  80. sbit P72 = P7^2;
  81. sbit P73 = P7^3;
  82. sbit P74 = P7^4;
  83. sbit P75 = P7^5;
  84. sbit P76 = P7^6;
  85. sbit P77 = P7^7;

  86. void delay()
  87. {
  88.     int i, j;

  89.     for (i=0; i<1000; i++)
  90.     for (j=0; j<500; j++);
  91. }


  92. void main()
  93. {
  94.     P0M0 = 0x00;
  95.     P0M1 = 0x00;
  96.     P1M0 = 0x00;
  97.     P1M1 = 0x00;
  98.     P2M0 = 0x00;
  99.     P2M1 = 0x00;
  100.     P3M0 = 0x00;
  101.     P3M1 = 0x00;
  102.     P4M0 = 0x00;
  103.     P4M1 = 0x00;
  104.     P5M0 = 0x00;
  105.     P5M1 = 0x00;
  106.     P6M0 = 0x00;
  107.     P6M1 = 0x00;
  108.     P7M0 = 0x00;
  109.     P7M1 = 0x00;

  110.     P10 = 0;
  111.     delay();
  112.     P10 = 1;
  113.     P11 = 0;
  114.     delay();
  115.     P11 = 1;
  116.     P12 = 0;
  117.     delay();
  118.     P12 = 1;
  119.     P13 = 0;
  120.     delay();
  121.     P13 = 1;
  122.     P14 = 0;
  123.     delay();
  124.     P14 = 1;
  125.     P15 = 0;
  126.     delay();
  127.     P15 = 1;
  128.     P16 = 0;
  129.     delay();
  130.     P16 = 1;
  131.     P17 = 0;
  132.     delay();
  133.     P17 = 1;

  134. //    P30 = 0;          //P3.0/P3.1为仿真口和USB下载口时不可演示
  135. //    delay();
  136. //    P30 = 1;
  137. //    P31 = 0;
  138. //    delay();
  139. //    P31 = 1;
  140.     P32 = 0;
  141.     delay();
  142.     P32 = 1;
  143.     P33 = 0;
  144.     delay();
  145.     P33 = 1;
  146.     P34 = 0;
  147.     delay();
  148.     P34 = 1;
  149.     P35 = 0;
  150.     delay();
  151.     P35 = 1;
  152.     P36 = 0;
  153.     delay();
  154.     P36 = 1;
  155.     P37 = 0;
  156.     delay();
  157.     P37 = 1;

  158.     P20 = 0;
  159.     delay();
  160.     P20 = 1;
  161.     P21 = 0;
  162.     delay();
  163.     P21 = 1;
  164.     P22 = 0;
  165.     delay();
  166.     P22 = 1;
  167.     P23 = 0;
  168.     delay();
  169.     P23 = 1;
  170.     P24 = 0;
  171.     delay();
  172.     P24 = 1;
  173.     P25 = 0;
  174.     delay();
  175.     P25 = 1;
  176.     P26 = 0;
  177.     delay();
  178.     P26 = 1;
  179.     P27 = 0;
  180.     delay();
  181.     P27 = 1;

  182.     P00 = 0;
  183.     delay();
  184.     P00 = 1;
  185.     P01 = 0;
  186.     delay();
  187.     P01 = 1;
  188.     P02 = 0;
  189.     delay();
  190.     P02 = 1;
  191.     P03 = 0;
  192.     delay();
  193.     P03 = 1;
  194.     P04 = 0;
  195.     delay();
  196.     P04 = 1;
  197.     P05 = 0;
  198.     delay();
  199.     P05 = 1;
  200.     P06 = 0;
  201.     delay();
  202.     P06 = 1;
  203.     P07 = 0;
  204.     delay();
  205.     P07 = 1;

  206.     P40 = 0;
  207.     delay();
  208.     P40 = 1;
  209.     P41 = 0;
  210.     delay();
  211.     P41 = 1;
  212.     P42 = 0;
  213.     delay();
  214.     P42 = 1;
  215.     P43 = 0;
  216.     delay();
  217.     P43 = 1;
  218.     P44 = 0;
  219.     delay();
  220.     P44 = 1;
  221.     P45 = 0;
  222.     delay();
  223.     P45 = 1;
  224.     P46 = 0;
  225.     delay();
  226.     P46 = 1;
  227.     P47 = 0;
  228.     delay();
  229.     P47 = 1;

  230.     P50 = 0;
  231.     delay();
  232.     P50 = 1;
  233.     P51 = 0;
  234.     delay();
  235.     P51 = 1;
  236.     P52 = 0;
  237.     delay();
  238.     P52 = 1;
  239.     P53 = 0;
  240.     delay();
  241.     P53 = 1;
  242.     P54 = 0;
  243.     delay();
  244.     P54 = 1;
  245.     P55 = 0;
  246.     delay();
  247.     P55 = 1;
  248.     P56 = 0;
  249.     delay();
  250.     P56 = 1;
  251.     P57 = 0;
  252.     delay();
  253.     P57 = 1;

  254.     P60 = 0;
  255.     delay();
  256.     P60 = 1;
  257.     P61 = 0;
  258.     delay();
  259.     P61 = 1;
  260.     P62 = 0;
  261.     delay();
  262.     P62 = 1;
  263.     P63 = 0;
  264.     delay();
  265.     P63 = 1;
  266.     P64 = 0;
  267.     delay();
  268.     P64 = 1;
  269.     P65 = 0;
  270.     delay();
  271.     P65 = 1;
  272.     P66 = 0;
  273.     delay();
  274.     P66 = 1;
  275.     P67 = 0;
  276.     delay();
  277.     P67 = 1;

  278.     P70 = 0;
  279.     delay();
  280.     P70 = 1;
  281.     P71 = 0;
  282.     delay();
  283.     P71 = 1;
  284.     P72 = 0;
  285.     delay();
  286.     P72 = 1;
  287.     P73 = 0;
  288.     delay();
  289.     P73 = 1;
  290.     P74 = 0;
  291.     delay();
  292.     P74 = 1;
  293.     P75 = 0;
  294.     delay();
  295.     P75 = 1;
  296.     P76 = 0;
  297.     delay();
  298.     P76 = 1;
  299.     P77 = 0;
  300.     delay();
  301.     P77 = 1;

  302.     while (1)
  303.     {
  304.         P0 = 0x00;
  305.         delay();
  306.         P0 = 0xff;

  307.         P1 = 0x00;
  308.         delay();
  309.         P1 = 0xff;

  310.         P3 = 0x03;          //P3.0/P3.1为仿真口和USB下载口时不可演示
  311.         delay();
  312.         P3 = 0xff;

  313.         P2 = 0x00;
  314.         delay();
  315.         P2 = 0xff;

  316.         P4 = 0x00;
  317.         delay();
  318.         P4 = 0xff;

  319.         P5 = 0x00;
  320.         delay();
  321.         P5 = 0xff;

  322.         P6 = 0x00;
  323.         delay();
  324.         P6 = 0xff;

  325.         P7 = 0x00;
  326.         delay();
  327.         P7 = 0xff;
  328.     }
  329. }

复制代码
回复

使用道具 举报

ID:161164 发表于 2024-12-5 21:36 | 显示全部楼层
wh8010jky 发表于 2024-12-5 15:43
已初始化了,而且在keil通过了,i/o配置的语句就是从keil 的例程复制的。现在测试 i/o 口没有反应,程序 ...

如何测试I/O?
回复

使用道具 举报

ID:134430 发表于 2024-12-6 10:55 | 显示全部楼层

烧录后用万用表测量 i/o 的电平,根据程序看电平的变化,
现在除P30,31有变化外,其余都无反应。
这样做对吗?
回复

使用道具 举报

ID:134430 发表于 2024-12-6 12:42 | 显示全部楼层
回各位朋友,先谢谢大家!!

我这块板子称为“stc8h8k64u     stc32g12k128  核心板“,

以前都是用89c52, 首次学习stc 的其他型号,
首先选择了stc8, 在工程中从stc-isp 复制了stc8 头文件,复制了 i/o 配置文件,   
烧录时才知道这块板子的芯片是stc32 ,这里改选芯片后发生了一个致命的忽略:没有换头文件!

随后,就碰到了“通信超时”问题,
摸索好长时间后才弄明白stc-isp 不再提示“请给目标板上电”,傻傻等提示只能“超时”,

烧录问题解决以后,就面对了 i/o 口呈高阻状态,程序不能运行,
朋友们提到多种办法,加P_SW2 |= 0X80;语句,加内置4.1k  电阻等等,经试,都无用,

刚刚,突然意识到头文件没换,致命的失误!

可是,换了头文件,却出现了一大堆error  , 手机翻译:基础地址无效!
现在我还不知道怎么解决哩,各位提提建议吧,谢谢!!!

截图21.png
回复

使用道具 举报

ID:1064799 发表于 2024-12-9 14:23 | 显示全部楼层
可以尝试调低通讯频率,调到最低试一下
回复

使用道具 举报

ID:624769 发表于 2024-12-9 16:46 | 显示全部楼层
你先确定,你是STC32  还是  STC8, 如果是 STC32 你要装 C251 才行。
回复

使用道具 举报

ID:876947 发表于 2024-12-14 10:31 | 显示全部楼层
WL0123 发表于 2024-12-5 21:13
不需要配置内部4.1k上拉电阻,IO口测试程序如下:

必须顶一下
回复

使用道具 举报

ID:876947 发表于 2024-12-14 10:35 | 显示全部楼层
我也有和你一样的板子,用stc89c52的原程序给stc8h8k64u     stc32g12k128直接烧录肯定失败,需要将原程序重新编译。
回复

使用道具 举报

ID:1130054 发表于 2024-12-23 18:16 来自手机 | 显示全部楼层
看一下PDF文件,买个CH340下载器,不贵。
回复

使用道具 举报

ID:430492 发表于 2025-1-19 10:10 | 显示全部楼层
这个板子下载时,需要拔掉除type-c线以外的IO口上的线,然后按一下REST按钮,基本都能正常下载程序。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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