找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机烧录程序后损坏

[复制链接]
跳转到指定楼层
楼主
芯片型号STC15W204S单片机,烧录的DS18B20测温程序,工作都正常,后来在DS18B20的程序中增加了一段读取DS18B20序列号的程序,如下///////////////////////////////////////////////////////////////

void get_rom()        //获取DS18B20的序列号
{
        unsigned char i,j;
        Ds18B20_Rst(); //复位
        Delay_ms(1); //延时
        Ds18B20_Wr(0x33); //发送读序列号命令
        for(j=0;j<9;j++)
        {
                table[j]=Ds18B20_Rd(); //读取序列号存入数组
        }
}


///////////////////////////////////////////////////////////////
在主程序中测试一下,调用get_rom(),然后把序列号送串口。编译后烧录,第一次烧录正常,断电再上电后,板子就不能再启动了,烧录程序也烧录不进去了,示波器测量下载程序时单片机的RXD与TXD引脚,也有信号,但就是不能下载程序,最后实在没办法,换了MCU,烧最原始的程序,板子运行启动都正常,手贱又烧录了一次加上  读序列号的程序,结果又是同样的问题,不能下载程序不能启动,MCU又坏了。
有大佬知道是怎么回事吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:57657 发表于 2022-2-22 18:41 | 只看该作者
请测量其他IO口有无信号
回复

使用道具 举报

板凳
ID:624769 发表于 2022-2-22 19:35 | 只看该作者
把芯片从板子上取下来,就能烧录了, 如果你经常要在板烧录的话,最好加入启动延时,不然很容易烧录失败。
回复

使用道具 举报

地板
ID:57657 发表于 2022-2-22 20:23 | 只看该作者
188610329 发表于 2022-2-22 19:35
把芯片从板子上取下来,就能烧录了, 如果你经常要在板烧录的话,最好加入启动延时,不然很容易烧录失败。

贴片的芯片取不下来,板子设计可能有问题。
回复

使用道具 举报

5#
ID:624769 发表于 2022-2-22 21:29 | 只看该作者
npn 发表于 2022-2-22 20:23
贴片的芯片取不下来,板子设计可能有问题。

恩,我只是通过这个告诉他,问题不在代码,也不在芯片,而是在于,板子在设计时没有考虑,在板烧录的问题,一般需要边测试,边修改代码,反复重新烧录的话,板子上面要多加一些可以和外围切断的跳线,不然就应该考虑用 DIP的封装 配合IC座 来方便拆装烧录。
回复

使用道具 举报

6#
ID:213173 发表于 2022-2-23 06:10 | 只看该作者
只要硬件电路没有隐患,再烂的代码也不会导致MCU损坏。检查烧录时的硬件选项是否得当、硬件电路有无瑕疵。
回复

使用道具 举报

7#
ID:65956 发表于 2022-2-23 08:38 | 只看该作者
是不是你的P30P31有复用电路存在,把你的原理图发出来让人帮你看一下就知道了
回复

使用道具 举报

8#
ID:590050 发表于 2022-2-23 08:50 | 只看该作者
npn 发表于 2022-2-22 18:41
请测量其他IO口有无信号

其它口也没有输出,程序就跟没启动一样,外部有个706看门狗,程序没启动,没喂狗,然后就又导致一致复位。
回复

使用道具 举报

9#
ID:590050 发表于 2022-2-23 08:51 | 只看该作者
本帖最后由 hzh173 于 2022-2-23 09:36 编辑
188610329 发表于 2022-2-22 19:35
把芯片从板子上取下来,就能烧录了, 如果你经常要在板烧录的话,最好加入启动延时,不然很容易烧录失败。

谢谢,应该是电路有影响了。
回复

使用道具 举报

10#
ID:590050 发表于 2022-2-23 09:15 | 只看该作者
本帖最后由 hzh173 于 2022-2-23 09:40 编辑
188610329 发表于 2022-2-22 21:29
恩,我只是通过这个告诉他,问题不在代码,也不在芯片,而是在于,板子在设计时没有考虑,在板烧录的问题 ...

谢谢,可能就是周边电路影响了。我把拆下的不良芯片焊到一个光PCB板子上,重新下载原始程序,可下载成功了,然后再把这个芯片从光PCB板上拆下来,重新焊回到原电路板上,测试功能正常,奇怪的是在电路板上重新下载原始程序,也可以正常下载。
回复

使用道具 举报

11#
ID:590050 发表于 2022-2-23 09:35 | 只看该作者
电路比较简单,就是实现测温,然后根据设定控制继电器通断的功能,再一个串口通讯。应该是哪个在地方影响。

51hei截图20220223093120.jpg (75.17 KB, 下载次数: 78)

51hei截图20220223093120.jpg
回复

使用道具 举报

12#
ID:584814 发表于 2022-2-23 10:34 | 只看该作者
P3.0和3.1接入电路,如何保证不受SE232芯片影响 ?
回复

使用道具 举报

13#
ID:401564 发表于 2022-2-23 13:38 | 只看该作者
12#应该就是正解了
STC15W204S的串口IO是可以切换的,可以把串口切换到P3.6和P3.7上,这样一来,P3.0和P3.1就不用接入电路了
回复

使用道具 举报

14#
ID:624769 发表于 2022-2-23 13:58 | 只看该作者
hzh173 发表于 2022-2-23 09:35
电路比较简单,就是实现测温,然后根据设定控制继电器通断的功能,再一个串口通讯。应该是哪个在地方影响。 ...

看你的图,就如同我所说的, P3.0 和 P3.1 与 SP232 之间的连接最好 用跳线帽连接,那么你要下载的时候,如果发现不能成功下载,只要断开,P3.0 P3.1 与 SP232 之间的连接即可成功下载。

我不知道你电路图上  P3.6 P3.7 的接地跳线 是什么原因,是什么目的,如果是一种类似 拨码开关的性质,我觉得,你可以考虑13楼的说法,把串口通信换到 P3.6 P3.7, 把原来P3.6,P3.7 需要接地的责任 给P3.0 P3.1, 那么你需要下载的时候,只要断开  P3.0,3.1 的接地即可。
回复

使用道具 举报

15#
ID:1006236 发表于 2022-2-23 14:13 | 只看该作者
已经接了232芯片的话,就不要使用TTL方式去刷程序了,直接232线来刷,先启动软件,再给板子通电
回复

使用道具 举报

16#
ID:742483 发表于 2022-2-23 14:14 | 只看该作者
我有几块芯片用STC-ISP烧录不进去...
回复

使用道具 举报

17#
ID:57657 发表于 2022-2-23 14:19 | 只看该作者
wulin 发表于 2022-2-23 06:10
只要硬件电路没有隐患,再烂的代码也不会导致MCU损坏。检查烧录时的硬件选项是否得当、硬件电路有无瑕疵。

代码可能会损坏板子外的元件,某MOS管截止频率10Khz,1Mhz进去直接冒烟。
回复

使用道具 举报

18#
ID:123289 发表于 2022-2-26 15:50 | 只看该作者
5#错,
6#、7#是正确!请采纳。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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