zoukankan      html  css  js  c++  java
  • 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确实成功了,不用每次都去按键,确实爽啊!!!哈哈

  • 相关阅读:
    Lua环境
    WebKit
    Net线程间通信的异步机制
    Cucumber入门1 传统流程下的使用
    Windows Server 2008中安装IIS7.0
    WebCore
    百度云计算平台Python环境试用
    认识ASP.NET MVC的5种AuthorizationFilter
    浅谈java中常见的排序
    go语言中goroutine的使用
  • 原文地址:https://www.cnblogs.com/fwindpeak/p/2996357.html
Copyright © 2011-2022 走看看