找回密码
 立即注册
查看: 392|回复: 1

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

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2025-04-30 10:11:34

3

主题

38

回帖

749

积分

高级会员

积分
749
发表于 2024-9-12 10:40:47 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-9-12 12:08 编辑

截图202409121037254309.jpg

如图箭头所指处断电重新上电后串口无回复,接线未动,重新烧录一次程序后正常,单片机型号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[0] ==0x21)&&(RX3_Buffer[1] ==0x12)&&(RX3_Buffer[2] ==0x01))
                                {
                                       
                                        delay_ms(20);
                                        databuf[0]=RX3_Buffer[2];
                                        databuf[1]=0;
                                        databuf[2]=RX3_Buffer[4];
                                        databuf[3]=RX3_Buffer[5];
                                        databuf[4]=RX3_Buffer[6];
                                        databuf[5]=RX3_Buffer[7];
                                        databuf[6]=RX3_Buffer[8];
                                        databuf[7]=RX3_Buffer[9];
                                        databuf[8]=RX3_Buffer[10];
                                        databuf[9]=RX3_Buffer[11];
                                        databuf[10]=RX3_Buffer[12];
                                        databuf[11]=RX3_Buffer[13];
                                        databuf[12]=RX3_Buffer[14];
                                        databuf[13]=RX3_Buffer[15];
                                        databuf[14]=RX3_Buffer[16];
                                        databuf[15]=RX3_Buffer[17];
                                        databuf[16]=RX3_Buffer[18];
                                        databuf[17]=RX3_Buffer[19];
                                        databuf[18]=RX3_Buffer[20];
                                        databuf[19]=0;
                                       
                                       
                                        RX3_Buffer[0] =0x00;
                                        modbuscrc = MODBUS_CRC16(databuf, 20);
                                        crcbuf[0]=(u8)(modbuscrc>>8);
                                        crcbuf[1]=(u8)modbuscrc;
                                        UART3_TxByte(0x21);
                                        UART3_TxByte(0x12);
                                        uart3_send_array(databuf, 20);
                                        uart3_send_array(crcbuf, 2);
                                        UART3_TxByte(0x40);
                                       
                                       
                                }

}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:240
  • 最近打卡:2025-05-03 15:51:21

22

主题

283

回帖

911

积分

高级会员

积分
911
发表于 2024-9-12 11:56:38 来自手机 | 显示全部楼层
延时10MS,再打印看下
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 04:05 , Processed in 0.122110 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表