久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1755|回復: 3
收起左側

單片機程序 串口能進中斷,可正常接收,不能發送,卻能進發送中斷

[復制鏈接]
ID:1087361 發表于 2023-7-5 16:21 | 顯示全部樓層 |閱讀模式
問題描述:串口2能進入接收中斷,正常接受數據。發送部分也能進入發送中斷,更新發送標記位,但奇怪的是,電路上靜悄悄,沒有任何波動,串口助手接受不到單片機回傳的數據。也就是,串口接受正常,發送不正常。請大神看看,是不是程序有什么問題?


使用STC8H1K28單片機
串口2驅動部分
void Uart2Init(void)                //9600bps@22.1184MHz 面板用串口
{
        S2CON = 0x50;                //8位數據,可變波特率
        AUXR |= 0x04;                //定時器時鐘1T模式
        T2L = 0xC0;                //設置定時初始值
        T2H = 0xFD;                //設置定時初始值
        AUXR |= 0x10;                //定時器2開始計時
        IP2 &= 0XFE;
        IP2H &=0XFE;//UART2中斷優先級最低
        P_SW2 = 0x00;          //RXD2/P1.0, TXD2/P1.1
        IE2  |= 0X01;         //打開Uart2中斷允許位 相當于 ES2=1;
}


串口發送部分
void UartReturnTemperatureValue()
{
                char i =0;
                Temperature_UartSend_Value[0] = 0xFF;
                Temperature_UartSend_Value[1] = KZB_Cold_Temperature;
                Temperature_UartSend_Value[2] = KZB_Warm_Temperature;
                Temperature_UartSend_Value[3] = KZB_Ground_Temperature;
                Temperature_UartSend_Value[4] = WIFI_Connect;
                Temperature_UartSend_Value[5] = Temperature_UartSend_Value[0]+Temperature_UartSend_Value[1]+Temperature_UartSend_Value[2]+Temperature_UartSend_Value[3]+Temperature_UartSend_Value[4];
                *UartSend_Ptr = Temperature_UartSend_Value;
                Uart_OnSending = 1;//標記CPU處于發送忙狀態
                UartSendFlag = 0;
                for(i=0;i<6;i++)
                {
                                S2BUF = *UartSend_Ptr++;
                                while(!UartSendFlag);
                                UartSendFlag = 0;
                              
                }
                Uart_OnSending = 0;//標記CPU可接受后續數據
}

串口中斷部分:
void Intterrupt_Uart2(void) interrupt 8 //UART2 INTTERUPT
{
                if(S2CON & 0X02)//發送部分《= 此處中斷能進入,UartSendFlag能被置1,但數據發送不出去。
                {
                                S2CON &=~0X02;//清除發送標記位
                                UartSendFlag =1;
                }

               if(S2CON & 0X01)//接受部分
                {
                                S2CON &=~0X01;//接受標記位
                                UartReceieveFlag = 1;

                }
}


回復

使用道具 舉報

ID:584195 發表于 2023-7-7 09:11 | 顯示全部樓層
你可以進入調試,看看是卡在哪里了,是不是沒有清發送中斷標志位?
回復

使用道具 舉報

ID:883242 發表于 2023-7-7 15:35 | 顯示全部樓層
能進發送中斷說明已經發送出去了,你看不到那就是硬件問題。
回復

使用道具 舉報

ID:161164 發表于 2023-7-7 15:49 | 顯示全部樓層
STC8引腳預設是高阻輸入
你改回準雙向了嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清一区二区三区 | 二区在线观看 | 日韩欧美在线免费观看视频 | 国产成人一区二区三区 | 91pron在线 | 亚洲国产精品第一区二区 | 欧美涩涩网 | 欧美一区二区在线 | 午夜精品影院 | 精品日韩在线 | 久久国产精品免费一区二区三区 | 欧美激情一区 | 999精品在线观看 | 国产精品久久久久一区二区三区 | 久久久精品网站 | 亚洲成人精品久久久 | 91久久精品| 久草精品视频 | 国产亚洲精品久久久久动 | 亚洲欧洲一区二区 | 精品久久久久久久久久久久久久 | 插插插干干干 | 久热免费 | 欧美精品在线观看 | 国产一区久久 | 91传媒在线观看 | 精品久久久久国产免费第一页 | 国产乱码精品一品二品 | 在线一区观看 | 免费一级欧美在线观看视频 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 久久一区 | 青青草在线播放 | 福利一区在线观看 | 国产精品久久久久久吹潮 | 免费观看一级特黄欧美大片 | 美女视频一区二区三区 | 亚洲精品乱码久久久久久黑人 | 国产成人a亚洲精品 | 国产一区 | 精品国产91久久久久久 |