找回密码
 立即注册
查看: 1936|回复: 7

第三方mcu给stc8g1k17a进行ISP下载

[复制链接]

1

主题

2

回帖

39

积分

新手上路

积分
39
发表于 2023-8-30 15:38:54 | 显示全部楼层 |阅读模式
Snipaste_2023-08-30_15-27-13.jpg

如图,问题出现在第三步,准备阶段,收到的数据是00 00 所以超时退出了,请教一下有遇到同样问题的吗?如何解决?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:532
  • 最近打卡:2025-10-15 08:56:42
已绑定手机

47

主题

2274

回帖

7995

积分

论坛元老

积分
7995
发表于 2023-8-31 10:52:03 | 显示全部楼层
超时计数器 TimeOut 是在1ms中断里面递减,100ms才减1:

  1. //1ms定时器中断服务程序
  2. void tm0(void) interrupt 1
  3. {
  4.     static BYTE Counter100;
  5.    
  6.     f1ms = TRUE;
  7.     if (Counter100-- == 0)
  8.     {
  9.         Counter100 = 100;
  10.         if (TimeOut) TimeOut--;
  11.     }
  12. }
复制代码
而在发送命令函数 CommSend 后面会进行串口通信参数初始化,TimeOut =20 也就是说2秒钟才会超时:
  1. //串口通讯初始化
  2. void CommInit(void)
  3. {
  4.     UartRecvStep = 0;
  5.     TimeOut = 20;
  6.     UartReceived = FALSE;
  7. }
复制代码
就算接收了2个00也不至于要用2秒钟,你对照一下例程,是不是哪里没有设置好,或者被你修改了。
回复

使用道具 举报 送花

1

主题

2

回帖

39

积分

新手上路

积分
39
发表于 2023-8-31 13:05:11 | 显示全部楼层
乘风*** 发表于 2023-8-31 10:52
超时计数器 TimeOut 是在1ms中断里面递减,100ms才减1:

而在发送命令函数 CommSend 后面会进行串口通信参 ...

是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT=0后,才超时退出
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:532
  • 最近打卡:2025-10-15 08:56:42
已绑定手机

47

主题

2274

回帖

7995

积分

论坛元老

积分
7995
发表于 2023-8-31 15:51:18 | 显示全部楼层
xx*** 发表于 2023-8-31 13:05
是我表述有问题,CommSend 发送数据没问题,但接收到的数据不对,发送完,接着接收到2个数据00,TimeOUT= ...

准备时有进行波特率调整吗?
  1.     //准备
  2.     TH1 = HIBYTE(BR(MAXBAUD));
  3.     TL1 = LOBYTE(BR(MAXBAUD));
复制代码


回复

使用道具 举报 送花

1

主题

2

回帖

39

积分

新手上路

积分
39
发表于 2023-8-31 16:05:35 | 显示全部楼层
乘风*** 发表于 2023-8-31 15:51
准备时有进行波特率调整吗?

调整波特率试过了,也不行
回复

使用道具 举报 送花

已绑定手机

0

主题

2

回帖

8

积分

新手上路

积分
8
发表于 2025-2-17 14:11:49 | 显示全部楼层
请教一下,楼主解决了吗,我也遇到了相似的问题,发送准备命令后单片机无回复,超时后退出
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 2025-2-17 14:18:30 | 显示全部楼层
截图202502171415539281.jpg


截图202502171416324408.jpg

截图202502171417107640.jpg

截图202502171417429223.jpg

截图202502171418262634.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-07 23:37:09
已绑定手机

0

主题

2

回帖

10

积分

新手上路

积分
10
发表于 2025-10-7 23:40:16 | 显示全部楼层
应该是设置的ISP工作频率不对,
用芯片在电脑的ISP软件上检测下 “检测选项”
之后会给出  系统ISP工作频率: 23.844MHz
之后在范例程序中改下:
#define                FUSER                24000000L                                //STC8H 系列目标芯片工作频率
#define                RL(n)                (65536-(FUSER/(n)+2)/4)        //STC8H 系列目标芯片串口波特率计算公式
就可以了,这个也困扰我一天,改了之后就解决了
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-16 05:42 , Processed in 0.128257 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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