dwwzl 发表于 2026-2-26 18:18:08

今天试了一下,P8口输出总是低电平,似乎控制不了,不知道是什么原因。
我的代码如下:

void sys_init()
{
    WTST = 0x00;
    EAXFR = 1; //扩展寄存器(XFR)访问使能
    CKCON = 0; //提高访问XRAM速度
   
    P2M0 |= 0x40; // P26推挽输出
    P2M1 |= 0x00;
    P3M0 |= 0x00;
    P3M1 |= 0x00;
    P8M0 |= 0xff; // P8推挽输出
    P8M1 |= 0x00;

    P32 = 0;
    _nop_();
    _nop_();
    P32 = 1;
    P3PU |= 0x04;
   
    TMOD &= 0xF0; // 只设置T0,忽略T1
    T0x12 = 1; // T0工作在1T模式
    TL0 = T1MS;
    TH0 = T1MS >> 8;
    TR0 = 1;
    ET0 = 1;
   
    EA = 1;
}


void main()
{
    sys_init();
    // 初始化数据
    //P_DISPLAYON();
    P8OUT = 0xff;
   
    while (1)
    {
      // 呼吸灯
      if(U16TimingLed>500)
      {
            U16TimingLed = 1; // 重新开始

            /**
            if(P_RUNLED==OFF) P_RUNLED = ON;
            else P_RUNLED = OFF;
            /**/
            P_RUNLED = ~P_RUNLED;
      }
    }
}

现象就是,运行呼吸灯闪烁正常,但P8口一直是低电平。

dwwzl 发表于 2026-2-27 10:03:01

感谢大家了,问题已经解决。
措施是对端口进行全面配置;
具体原因未知
页: 1 [2]
查看完整版本: STC32G144K246 P8M0~PBM1文档描述与头文件定义不一致