ofela 发表于 2024-11-17 21:25:26

8h8k64u串口2初始化完成后自动发送一个00,这是为什么呢?怎么才能避免

本帖最后由 DebugLab 于 2024-11-18 10:48 编辑

void main()
{      
      Uart2_Init();
      Uart1_Init();
      GPIO_Init();               
      I2C_Init();
      
      EA = 1;
}
void Uart2_Init()
{      

      S2CON = 0x50;
      P_SW2 = 0x00;         //RXD2/P1.0, TXD2/P1.1


      AUXR |= 0x04;                //定时器时钟1T模式
      
      if(Baud_Set==1)                        {T2L = 0x80;                T2H = 0xFB;}                         // @44.2368MHz      9600      
      else if(Baud_Set==2)         {T2L = 0xC0;                T2H = 0xFD;}                        // @44.2368MHz      19200      
      else if(Baud_Set==3){T2L = 0xE0;                T2H = 0xFE;}   // @44.2368MHz      38400      
      else if(Baud_Set==4){T2L = 0x40;                T2H = 0xFF;}    // @44.2368MHz      57600               
      else                                                                        {T2L = 0xA0;                T2H = 0xFF;}         // @44.2368MHz115200      
                                                      

      AUXR |= 0x10;                //定时器2开始计时
      IE2 |= 0x01;                //使能串口2中断   

}
void GPIO_Init()
{
                P0M0=0;P0M1=0;
                P1M0=0;P1M1=0;
                P2M0=0;P2M1=0;
    P3M0 = 0x70; P3M1 = 0x00;

                P5M0=0;P5M1=0;
}


邮箱 发表于 2024-11-17 22:34:46

本帖最后由 邮箱 于 2024-11-17 22:38 编辑

先设置GPIO模式、清除中断标志,再使能中断

VCC 发表于 2024-11-18 02:09:43

应该并不是发送了0x00,而是在TXD上输出了一个毛刺而已

小坤 发表于 2024-11-18 08:34:36

输出一个0x00 也没有说明关系啊

bkeuqoaq 发表于 2024-11-18 08:58:23

先配置GPIO

ofela 发表于 2024-11-18 16:58:56

邮箱 发表于 2024-11-17 22:34
先设置GPIO模式、清除中断标志,再使能中断

没有用呢

ofela 发表于 2024-11-18 16:59:24

bkeuqoaq 发表于 2024-11-18 08:58
先配置GPIO

之前试过不行,所以才放后边的
页: [1]
查看完整版本: 8h8k64u串口2初始化完成后自动发送一个00,这是为什么呢?怎么才能避免