[技术问答] N76E003开串口中断会卡在printf

[复制链接]
1363|3
 楼主| luqe 发表于 2021-11-4 10:40 | 显示全部楼层 |阅读模式
代码;将红色部分注释掉,才能用printf,不然只能用Send_Data_To_UART0发送。

void main (void)
{
        Set_All_GPIO_Quasi_Mode;
        InitialUART0_Timer3(9600);
        set_P06;set_P07;
        SCON |= 0x50;   
        set_ES;
        set_EA;
       
                        printf ("\n succes");
                        Send_Data_To_UART0('1');
       
        while(1);       
}

void SerialPort0_ISR(void) interrupt 4
{
/*************************/
                if(TI)
                {
                        TI=0;//  clr_TI;
                }
/*************************/
    if(RI)
    {  
        clr_RI;         
                         temp =SBUF;
    }
}


skyred 发表于 2021-11-4 13:49 | 显示全部楼层
卡在中断里?
 楼主| luqe 发表于 2021-11-4 16:44 | 显示全部楼层
卡在printf
datouyuan 发表于 2021-11-5 09:04 | 显示全部楼层
printf()需要TI判断每个字符是否发送完成,中断优先清除了TI,所以卡在printf()。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

45

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部