f850570007 发表于 2024-9-12 10:40:47

8h3k6s4掉电重新上电串口失效,重新烧录恢复

本帖最后由 DebugLab 于 2024-9-12 12:08 编辑



如图箭头所指处断电重新上电后串口无回复,接线未动,重新烧录一次程序后正常,单片机型号8h3k6s4

void main(void)
{               
               
    P_SW2 |= 0x80;//扩展寄存器(XFR)访问使能

    P0M1 = 0x00;   P0M0 = 0x08;   //设置P0准双向口,P0.3推挽输出
    P1M1 = 0x30;   P1M0 = 0x30;   //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P2M1 = 0x00;   P2M0 = 0xff;   //设置P2推挽输出
    P3M1 = 0x00;   P3M0 = 0x00;   //设置P3准双向口
    P4M1 = 0x3c;   P4M0 = 0x3c;   //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
    P5M1 = 0x0c;   P5M0 = 0x0c;   //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
    P6M1 = 0xff;   P6M0 = 0xff;   //设置为漏极开路(实验箱加了上拉电阻到3.3V)
    P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
               
    UART1_config(1);    // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer1做波特率.
    UART2_config(2);    // 选择波特率, 2: 使用Timer2做波特率, 其它值: 无效.
                UART3_config(0);    // 选择波特率, 2: 使用Timer2做波特率, 其它值: 使用Timer3做波特率.
    EA = 1;             //允许全局中断

    PrintString3("STC8H8K64U UART1 Test Programme!\r\n");//UART3发送一个字符串
   
               
    while (1)
    {
                              
                              
                              
                              if((RX3_Buffer ==0x21)&&(RX3_Buffer ==0x12)&&(RX3_Buffer ==0x01))
                              {
                                       
                                        delay_ms(20);
                                        databuf=RX3_Buffer;
                                        databuf=0;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=RX3_Buffer;
                                        databuf=0;
                                       
                                       
                                        RX3_Buffer =0x00;
                                        modbuscrc = MODBUS_CRC16(databuf, 20);
                                        crcbuf=(u8)(modbuscrc>>8);
                                        crcbuf=(u8)modbuscrc;
                                        UART3_TxByte(0x21);
                                        UART3_TxByte(0x12);
                                        uart3_send_array(databuf, 20);
                                        uart3_send_array(crcbuf, 2);
                                        UART3_TxByte(0x40);
                                       
                                       
                              }

}

邮箱 发表于 2024-9-12 11:56:38

延时10MS,再打印看下
页: [1]
查看完整版本: 8h3k6s4掉电重新上电串口失效,重新烧录恢复