标题: 关于单片机下载口当做IO口后无法烧录的解决办法 [打印本页]

作者: 张小不懂    时间: 2020-3-17 11:26
标题: 关于单片机下载口当做IO口后无法烧录的解决办法
使用的单片机是STC15系列,把P3.0和P3.1用作霍尔开关检测口,第二次下载的时候就不能下载程序了,后来才想起来这两个口是下载口,问一下有没有办法解决。

作者: 张小不懂    时间: 2020-3-17 13:26
其实霍尔还没接上,就烧了1次程序就不能再次烧录了。
作者: carpcarey    时间: 2020-3-17 13:30
先要看你霍尔电路才能看有没有办法。如果接入了较大电容,先试试下载波特率最低的烧录频率。
作者: xxpp2011    时间: 2020-3-17 13:58
TXD,RXD要置1才能正常串口收发,你当作开关量检测的程序有没有将这两个口置0
作者: 张小不懂    时间: 2020-3-17 14:19
carpcarey 发表于 2020-3-17 13:30
先要看你霍尔电路才能看有没有办法。如果接入了较大电容,先试试下载波特率最低的烧录频率。

霍尔电路还没接上,只是下载了程序,测量了一下P3.0和P3.1口,电压为4.4V
作者: 张小不懂    时间: 2020-3-17 14:21
xxpp2011 发表于 2020-3-17 13:58
TXD,RXD要置1才能正常串口收发,你当作开关量检测的程序有没有将这两个口置0

霍尔开关还没接上,就下载了程序试了一下,测量了一下P3.0和P3.1口电压为4.4V,应该是没问题的
作者: 张小不懂    时间: 2020-3-17 14:27
程序就下面这一段用到了P3
  1. if((P3!=0xff)||(P4!=0xff))//出现故障
  2. {
  3.         P0=Value1;
  4.         P2=Value2;
  5.         for(i=0;i<8;i++)
  6.         {
  7.                 if((Value1&0x01)==0)
  8.                 {
  9.                         Malfunction_Buffer[2][i]+=1;        //哪只霍尔出现故障,故障次数+1
  10.                         Num_Malfunction++;                                //总故障+1
  11.                 }
  12.                 if((Value2&0x01)==0)
  13.                 {
  14.                         Malfunction_Buffer[3][i]+=1;
  15.                         Num_Malfunction++;
  16.                 }
  17.                 Value1>>=1;
  18.                 Value2>>=1;
  19.         }
  20. }
复制代码

作者: 张小不懂    时间: 2020-3-17 14:52
找到问题了,是我下载器的问题,接触不好了,又刚好下载完这个程序(太巧了,所以怀疑是借用IO口才出现的故障),在此谢谢大家的解答。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1