我在程序中如下写,
烧了一次之后就烧录不了,
int main()
{
Init_MCU();
Send_RS232_PC_Byte(0x01);
Send_RS232_PC_Byte(0xa1);
while(1){
;
}
return 0;
}
void INT0_PRG() interrupt 0
{
if (TH0 > 0x13){ //开始
IRByteCount = 0;
IRBitCount = 0;
Send_RS232_PC_Byte(TH0);
}else if(( TH0 < 0x10)&&(TH0 > 0x03)){
Send_RS232_PC_Byte(TH0);
}
}
TH0 = 0x00; //Clear Counter
TL0 = 0x00;
}
重新换一个mcu(51核)就可以烧了,
现在有点疑惑,1,是不是我这样写上mcu不能再烧了,还是有其他原因,(程序应该还是在跑,因为我开启了外中断,并在外中断中打印数据到串口中,)
2,以前只知道用烧录口的第二功能的话,烧一次下次这个烧录口就不能用了,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
if (TH0 > 0x13){
Send_RS232_PC_Byte(TH0);
IRByteCount = 0;
IRBitCount = 0;
}else if(( TH0 < 0x10)&&(TH0 > 0x03)){
Send_RS232_PC_Byte(TH0);
/*
IRShift = IRShift >> 1; //右移一位,接收低电平在前
if (TH0 > 0x07){
//Send_RS232_PC_Byte(TH0);
IRShift = IRShift | 0x80; //检测电平时间超过0x0d就确定为 1 或运算;只要有一个为1就为1
}else{
//Send_RS232_PC_Byte(TH0);
IRShift = IRShift & 0x7f; //参与运算的两个位都为1则为1
}
IRBitCount++;
if (IRBitCount == 7){
IRBuff[IRByteCount] = IRShift;
IRShift = 0;
IRByteCount++;
#if(_FLAG)
Send_RS232_PC_Byte(IRBuff[0]);
//Send_RS232_PC_Byte(0x01);
#endif
}
if(IRBitCount == 11){
IRBuff[IRByteCount] = IRShift;
IRShift = 0;
IRByteCount++;
#if(_FLAG)
Send_RS232_PC_Byte(IRBuff[1]);
//Send_RS232_PC_Byte(0x02);
#endif
} */
}
TH0 = 0x00;
TL0 = 0x00;
确切地说是加了上面的代码mcu就烧不了,
是注式掉的那部分加上就不能烧录了,
一周热门 更多>