欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

調(diào)用單片機串口2發(fā)送卡死

查看數(shù): 2834 | 評論數(shù): 8 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-9-13 15:59

正文摘要:

本帖最后由 happy2058 于 2021-9-13 18:23 編輯 芯片是8H1K08 工作流程序,屏幕通串口1發(fā)送數(shù)據(jù)給控制板、控制板返回要顯示數(shù)據(jù)給屏幕。再通過串口2發(fā)送操作數(shù)據(jù)給功能板2. 在沒加入串口2部分代碼前,屏幕 ...

回復

ID:734017 發(fā)表于 2021-9-13 21:51
感謝你,搞好了,原因串口2中斷函數(shù)沒寫。我想著不接收數(shù)據(jù),就沒寫了。感謝感謝。就算空函數(shù)也要加一個才行
ID:624769 發(fā)表于 2021-9-13 19:57
happy2058 發(fā)表于 2021-9-13 18:22
用是的8h1K08
串口1在最后一次發(fā)送完后T=0了。

我是說,你開了中斷,只要發(fā)送完,TI = 1, 就會觸發(fā)中斷,只要你不 TI = 0 就會不停的進入中斷。換句話說,有可能,你主程序永遠沒有 機會執(zhí)行 TI = 0;
8H1K08 我手頭焊好的沒有,也沒辦法測試。你要是不想加標志,就先不開 串口中斷。光試發(fā)送唄。
ID:734017 發(fā)表于 2021-9-13 18:22
188610329 發(fā)表于 2021-9-13 17:43
我說的中斷那個, 你試了沒?

用是的8h1K08
串口1在最后一次發(fā)送完后T=0了。
ID:624769 發(fā)表于 2021-9-13 17:43
happy2058 發(fā)表于 2021-9-13 17:36
也試過,卡死。所以才這行直接一點

我說的中斷那個, 你試了沒?  
ID:734017 發(fā)表于 2021-9-13 17:36
188610329 發(fā)表于 2021-9-13 16:58
你的:       while (S2CON==0x50);

這里應該 : while(S2CON & 0x02) !=0x02);   才對吧?

也試過,卡死。所以才這行直接一點
ID:624769 發(fā)表于 2021-9-13 17:18
最后, 你 串口1 開了中斷,但是,只對RI作了處理,沒有對TI 做處理, 我不知道你什么型號的單片機,不排除,死在中斷里出不來的可能。一般開了中斷,都會用一個 TI_Busy的標志位 寫了SBUF之后,就把 TI_Busy = 1; 然后下面 就 While(TI_Busy) ; ,  中斷里面加一個  
IF(TI)
{
     TI  = 0;
     TI_Busy = 0;
}
你參考一下吧。
ID:624769 發(fā)表于 2021-9-13 17:10
uchar k= 0 ;  
         do  
    {  
          S2BUF = (*(str + k));
                        
      k++;
                 while (S2CON==0x50);  
             S2CON &= ~0x02;
    }  
         while (k < strlen);
另外,這個寫法……, 真的沒關(guān)系么? 一般的寫法好像應該:
for(k= 0 ; k<strlen;k++)
{  
          S2BUF = *(str++);
          while ((S2CON & 0x02)==0);  
          S2CON &= ~0x02;
}  

這樣子么?
ID:624769 發(fā)表于 2021-9-13 16:58
你的:       while (S2CON==0x50);

這里應該 : while(S2CON & 0x02) !=0x02);   才對吧?

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表