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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2445|回復: 5
打印 上一主題 下一主題
收起左側

關于編寫串口通信協議遇到的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:94983 發表于 2015-11-7 14:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人最近在學習51單片機,主要功能是實現串口通信協議,并附帶數碼管顯示等功能。現在遇到一個問題,我現在希望每隔500ms發送一串16字節的數據,這個500ms我使用定時器0來實現,在10ms定時器中Send_Wait_1++。主函數中,上電先發送一串數據,數據發送過程中,Send_Wait_1一直清零,當定時器0啟動時,每次當Send_Wait_1>=50時,啟動發送函數Uart2_SendString(),但是我用keil5軟件仿真時,發現Send_Wait_1一直在增加,但是到了50后,并沒有觸發if語句從而發動Uart2_SendString(),程序燒到板子上后,用示波器測了一下,發送端只有上電后第一次發動的Uart2_SendString(),之后一直沒有數據發送,糾結了好幾天一直沒有想明白為什么。
主函數
void main(void)
{
  Timer0Init();
        Uart2_Init();       
        Send_Wait_1=0;
        Uart2_SendString();       
        if(Send_Wait_1>=50)
        {
  Send_Wait_1=0;
        Uart2_SendString();
        }       
        DisP4(1234);
        Digi();
        Key4();

}

定時器0,100us
void tm0() interrupt 1 using 1
{         
        US100++;
  if(US100>= 10)
    {US100=0; Serve1MS();                // 1MS¼Æê±
      MS1++;
    if(MS1>=10)
       {MS1=0;  Serve10MS();             // 10MS¼Æê±
        MS10++;
      if(MS10>=10)
        { MS10=0;  Serve100MS();           // 100MS¼Æê±
        MS100++;  
                                 if(MS100>=10)
                                 {
                                         MS100=0;  Serve1S();                // 1S¼Æê±
                                         S1++;
                                         if(S1>250) S1=0;
                                 }
        }
       }
    }
}

工程文件見附件,求高手指導一下

V1.03.zip

92.77 KB, 下載次數: 3

keil5工程

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94983 發表于 2015-11-7 17:58 | 只看該作者
我在用定時器0實現的1s定時器里控制p55取反,效果是LED閃爍,我發現,如果把        DisP4(1234);         Digi();         Key4()三行屏蔽的話,燈閃效果莫名地消失了,但是串口二會不斷地發數據而不是按照我期望的那樣每隔500ms發數據
回復

使用道具 舉報

板凳
ID:95029 發表于 2015-11-7 21:58 | 只看該作者
  if(Send_Wait_1>=50)         {   Send_Wait_1=0;         Uart2_SendString();         }                 DisP4(1234);         Digi();         Key4();
回復

使用道具 舉報

地板
ID:95029 發表于 2015-11-7 21:59 | 只看該作者
將下面幾句放在while(1){}中:  if(Send_Wait_1>=50)         {   Send_Wait_1=0;         Uart2_SendString();         }                 DisP4(1234);         Digi();         Key4();
回復

使用道具 舉報

5#
ID:94983 發表于 2015-11-8 15:34 | 只看該作者
logos 發表于 2015-11-7 21:59
將下面幾句放在while(1){}中:  if(Send_Wait_1>=50)         {   Send_Wait_1=0;         Uart2_SendStrin ...

發現問題了,是在digi函數里放了while(1)死循環了
回復

使用道具 舉報

6#
ID:95113 發表于 2015-11-8 23:46 | 只看該作者
雖然不能全都看懂,還是頂
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美中文日韩在线v日本 | 午夜影院在线免费观看视频 | 在线观看国产视频 | 999久久久 | www.久久| 亚洲精品欧美一区二区三区 | 日本黄色的视频 | 伊人成人免费视频 | 高清视频一区 | 国产精品国产a级 | 国产激情在线 | 色综网 | 国产人久久人人人人爽 | 波多野结衣av中文字幕 | 精品影院 | 免费观看毛片 | 国产精品久久精品 | 一区二区三区久久久 | 国产精品一区二区av | 亚洲午夜三级 | www.com久久久 | 精品亚洲一区二区三区四区五区 | 久久男人 | 亚洲一区二区在线播放 | 欧美久久一区二区三区 | 国产欧美日韩综合精品一区二区 | 久久99视频精品 | 国产欧美精品一区二区色综合朱莉 | 成人欧美日韩一区二区三区 | 精品一二区 | 久久亚洲一区二区三区四区 | 成人精品在线视频 | 日本一区二区三区免费观看 | 中文字幕福利 | 天天影视色综合 | 国产女人与拘做受免费视频 | 国产精品久久久久久久久久 | av中文字幕在线观看 | 国产精品久久网 | 嫩草视频免费 | 拍真实国产伦偷精品 |