'S2CON': invalid base address
在reg51.h头文件中添加了S2CON的,但是还是报错,别的都不报,就这个S2CON报错看看你的reg51.h文件的94和95行,
是不是用sbit定义了TI2和RI2 ?
S2CON的地址为9AH,不支持位寻址 zhp 发表于 2025-1-20 12:35
看看你的reg51.h文件的94和95行,
是不是用sbit定义了TI2和RI2 ?
S2CON的地址为9AH,不支持位寻址 ...
是的,但是SCON定义的是0x99,TI和RI是SCON^1和SCON^1,没有报错。S2CON的定义的是0x9A,TI2和RI2是S2CON^1和S2CON^1。这里报错了 rubnun 发表于 2025-1-20 12:39
是的,但是SCON定义的是0x99,TI和RI是SCON^1和SCON^1,没有报错。S2CON的定义的是0x9A,TI2和RI2是S2CON ...
SCON的定义是0x98,尾数的0或8的SFR可以位寻址,其它的不可以
void Uart2Isr() interrupt 8
{
if (S2CON & 0x02)
{
S2CON &= ~0x02;
busy = 0;
}
if (S2CON & 0x01)
{
S2CON &= ~0x01;
buffer = S2BUF;
wptr &= 0x0f;
}
}
void Uart2Init()
{
S2CON = 0x10;
T2L = BRT;
T2H = BRT >> 8;
AUXR = 0x14;
wptr = 0x00;
rptr = 0x00;
busy = 0;
}
中断要这样写,不能直接访问TI2和RI2 jwd 发表于 2025-1-20 13:25
中断要这样写,不能直接访问TI2和RI2
好的,十分感谢
页:
[1]