STC单片机不需要按电源开关下载的方法!

STC单片机在每次上电前检测串口是否有有下载信号进入ISP模式否则运行用户程序。

以前下载的时候每次都需要一个断电再开电的过程,甚是痛苦。

后来发现STC 1T系列的单片可以通过下面的方式软件重启:

sfr IAP_CONTR   = 0xC7;
IAP_CONTR=0x60;

 于是想到可以加入一个检测串口下载信号的代码,然后启动这个软件重启来达到不需要开关电源烧写程序的目的。

然后通过串口监控软件发现STC的ISP在烧写程序之前总是发送一连串的0x7F来寻找是否有单片机,单片机再发送一连串的0x7F与ISP程序握手。

于是我在单片机上写下一段检测0x7F然后软件重启的代码,结果发现不行。

我想应该是波特率的问题,单片机串口接收中断的波特率设为9600,而ISP不一定是9600,但找了几个串口监控软件都貌似不能监控波特率是多少。

直接将单片机接收到的数据打印出来后发现在9600波特率下接收到的“0x7F”是一连串的“0xFE 0x9e",不管了,直接就检测”0xfe 0x9e“吧。

结果成功了! 


 

后来修改:

其实不是的,上面那句”结果成功了“是我杜撰出来的,我检测出0xfe 0x9e后没有试验就来写这篇了,以为绝对能成功了。

实际上是这样的,51单片机检测出来的值是0x80,那个0xfe 0x9e我是用stm32检测出来的,因为stm32上有个屏幕,我直接插上去打印的。嘿嘿

不过这个0x80确实成功了,不用每次都去按键,确实爽啊!!!哈哈

转载于:https://www.cnblogs.com/fwindpeak/archive/2013/04/02/2996357.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值