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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3314|回復: 5
收起左側

大牛大蝦快來,串口通信始終不能按照定義的數據發送,程序改了十幾遍了

[復制鏈接]
ID:237942 發表于 2017-10-26 16:01 | 顯示全部樓層 |閱讀模式
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
u16 i,j;
u8 rec_buf[4]={0,0,0,0};
u8 code str1[]={0x23,0x01,0x04,0x00,0x00,0x00,0x01,0x23};  //¶¨òåËÄ×éμÆ1aD-òé
u8 code str2[]={0x23,0x01,0x04,0x00,0x00,0x00,0x02,0x23};
u8 code str3[]={0x23,0x01,0x04,0x00,0x00,0x00,0x03,0x23};
u8 code str4[]={0x23,0x01,0x04,0x00,0x00,0x00,0x04,0x23};

u8 code table1[4]={0x7E,0x41,0x06,0x0D};       //¶¨òåËÄ×éμã¸èÏμí3D-òé
u8 code table2[4]={0x7E,0x41,0x19,0x0D};
u8 code table3[4]={0x7E,0x41,0x09,0x0D};
u8 code table4[4]={0x7E,0x41,0x03,0x0D};

void InitUART(void)
{
    TMOD = 0x20;  //¶¨ê±Æ÷1¤×÷·½ê½2
    SCON = 0x50; // ′®¿ú1¤×÷·½ê½1£¬ÔêDí½óêÕ
    TH1 = 0xFA;
    TL1 = TH1;
    PCON = 0x80;  //2¨ìØÂê±¶Ôö
    EA = 1;
    ES = 1;
    TR1 = 1;
}

void SendOneByte(unsigned char c)
{
    SBUF = c;
    while(!TI);
    TI = 0;
}

void main(void)
{
  InitUART();
        if(rec_buf[3]==0x06)
                 {
                         for(i=0;str1[i]!='\0';i++)
                                        {
                                                SendOneByte(str1[i]);
                                                }
           }
          else if(rec_buf[3]==0x19)
                                         {
                                                 for(i=0;str2[i]!='\0';i++)
                                                {
                                                        SendOneByte(str2[i]);
                                                }
           }
           else if(rec_buf[3]==0x09)
                                         {
                                                 for(i=0;str3[i]!='\0';i++)
                                                {
                                                        SendOneByte(str3[i]);
                                                }
           }
                                          else
                                                {
                                                        for(i=0;str4[i]!='\0';i++)
                                                        {
                                                        SendOneByte(str4[i]);
                                                        }
            }
}

void UARTInterrupt(void) interrupt 4
{
           if(RI)
        {
                                        for(j=0;j<4;j++ )
                             rec_buf[j]=SBUF;
                                                RI = 0;
    }
    else
        TI = 0;
}

回復

使用道具 舉報

ID:111634 發表于 2017-10-26 22:11 | 顯示全部樓層
本帖最后由 zl2168 于 2017-10-26 22:14 編輯

先學學正確的東西吧!理解以后在查看自己錯在哪兒!
實例77  雙機串行通信方式1
實例77 雙機通信方式1.rar (40.4 KB, 下載次數: 4)
回復

使用道具 舉報

ID:242454 發表于 2017-10-27 10:11 | 顯示全部樓層
你把你KEIL里的字體改一下 ,就不會出現亂碼了
回復

使用道具 舉報

ID:123289 發表于 2017-10-27 12:57 | 顯示全部樓層
再回顧一下串行原理,再畫個細節框圖,估計應找到問題了。
回復

使用道具 舉報

ID:237942 發表于 2017-11-1 18:05 | 顯示全部樓層
無畏造英雄 發表于 2017-10-27 10:11
你把你KEIL里的字體改一下 ,就不會出現亂碼了

你意思是指我程序里面注釋加漢字了?
回復

使用道具 舉報

ID:237942 發表于 2017-11-1 18:08 | 顯示全部樓層
yzwzfyz 發表于 2017-10-27 12:57
再回顧一下串行原理,再畫個細節框圖,估計應找到問題了。

問題解決了,是主程序處理里面標志位一直沒有清除的問題
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产一区二区三区 | 国产精品色综合 | 国产精品亚洲综合 | 国产精品178页 | 99精品在线免费观看 | 久热久 | 精品久久久久久久久久久久久久 | 中文字幕视频在线看5 | 久久最新精品视频 | aaaaa毛片 | 国产成人午夜高潮毛片 | 国产高清精品一区二区三区 | 91视频国产一区 | 一区二区三区精品视频 | 国产美女永久免费无遮挡 | 黄网站免费观看 | 亚洲成人免费 | 四虎永久免费在线 | 成人在线中文字幕 | 国内精品在线视频 | 欧美久久久 | 观看av | 黄色片在线网站 | 午夜视频免费在线观看 | 天堂资源视频 | 精品视频久久久久久 | 蜜臀网| 国产麻豆乱码精品一区二区三区 | 欧美一区二区在线播放 | 久久久精品一区 | 国产免费一区二区 | 欧美专区在线 | 国产日韩视频 | 久久久不卡网国产精品一区 | 日韩久久久一区二区 | 成人国产精品久久久 | 日韩视频―中文字幕 | 免费成人高清在线视频 | 在线免费观看a级片 | 成年人在线观看视频 | aⅴ色国产 欧美 |