我用的是PIC16F1937, debug可以跑得通, 烧录完第一次也可以跑,可是重新上电就不动了, 放了几盏LED查原因, 发现程序卡在了I2C通讯那里,好奇怪, debug的时候全速跑,单步运行都是没问题的.
void Send_I2C_StartBit(void)
{
PIE1bits.SSPIE = 1;
INTCONbits.GIE = 0;
PIR1bits.SSPIF = 0; // clear SSP interrupte bit CCP1IF
SSPCON2bits.SEN = 1; // send start bit
SV2_On(); //灯2亮了
while(!PIR1bits.SSPIF); //卡在这里,
SV3_On(); // 灯3没亮
PIR1bits.SSPIF = 0;
INTCONbits.GIE = 1;
}
下面是我的配置字
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_ON & BOREN_ON & CLKOUTEN_OFF & IESO_ON & FCMEN_ON);__CONFIG(WRT_OFF & VCAPEN_OFF & PLLEN_OFF & STVREN_ON & BORV_HI & LVP_OFF); |