|

楼主 |
发表于 2022-5-23 09:42:04
|
显示全部楼层
好的好的,其实问题已经解决,但是我还是不太明白原因。希望大哥帮忙看看。
当我开启定时器中断,打开定时器0(中断号为1),关闭其他定时器。同时开启uart串口(中断号4)。此时串口发不出去,也是收不到东西。(定时器中断里没东西都不行)
当我屏蔽了定时器的时候,串口又恢复正常。我猜测是中断优先级的问题。并关闭了定时器0,打开了定时器3(中断号13)。依然没有恢复正常,然后屏蔽了按键扫描,只留一个bit 变量置位。然后才恢复正常。
我不是很明白为什么发不出去东西,不是中断嵌套,回来继续执行吗
void main(void)
{
uchar m;
IO_Init();
Timer_Init();//
Buzz_Drive(500);
BTM_Init();
Uart_Init(16,9600);
SR_Cmd2_Gain();
TM1640_Init();
for(m=0;m<16;m++)
{
TM1640_display_H(m,0xFF);
}
delay_ms(16);
for(m=0;m<16;m++)
{
TM1640_display_H(m,0x00);
}
while(1)
{
DisAll();
Key_Scan();
Key_Process();
GoWork();
Work_State();
}
}
|
|