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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2297|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

求幫測(cè)試一下串口程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:65643 發(fā)表于 2015-1-3 10:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
下面程序是用串口助手向51單片機(jī), 發(fā)送 1回 01; 發(fā)2回01 02; 發(fā)3回 01 02 03 04;發(fā)4回 01 02 03 04 05 06 07 08;波特率9600; 16位發(fā)送與接收
現(xiàn)在出了個(gè)問(wèn)題: 用 ISP 自帶的串口助手就能通訊。用其它串口助手就不能通訊。那位大俠幫用開(kāi)發(fā)板給測(cè)試一下,看看是什么地方出了問(wèn)題。謝謝




#include <reg52.h>

bit cmdArrived = 0;   //命令到達(dá)標(biāo)志,即接收到上位機(jī)下發(fā)的命令
unsigned char cmdIndex = 0; //命令索引,即與上位機(jī)約定好的數(shù)組編號(hào)
unsigned char cntTxd = 0;   //串口發(fā)送計(jì)數(shù)器
unsigned char *ptrTxd;      //串口發(fā)送指針

unsigned char array1[1] = {1};
unsigned char array2[2] = {1,2};
unsigned char array3[4] = {1,2,3,4};
unsigned char array4[8] = {1,2,3,4,5,6,7,8};

void ConfigUART(unsigned int baud);

void main()
{
    EA = 1;  //開(kāi)總中斷
    ConfigUART(9600);  //配置波特率為9600

    while (1)
    {
        if (cmdArrived)
        {
            cmdArrived = 0;
            switch (cmdIndex)
            {
                case 1:
                    ptrTxd = array1;         //數(shù)組1的首地址賦值給發(fā)送指針 等于ptrTxd = &array1[0];
                                  //  ptrTxd = & array1[0];
                    cntTxd = sizeof(array1); //數(shù)組1的長(zhǎng)度賦值給發(fā)送計(jì)數(shù)器
                    TI = 1;   //手動(dòng)方式啟動(dòng)發(fā)送中斷,處理數(shù)據(jù)發(fā)送
                    break;
                case 2:
                    ptrTxd = array2;
                    cntTxd = sizeof(array2);
                    TI = 1;
                    break;
                case 3:
                    ptrTxd = array3;
                    cntTxd = sizeof(array3);
                    TI = 1;
                    break;
                case 4:
                    ptrTxd = array4;
                    cntTxd = sizeof(array4);
                    TI = 1;
                    break;
                default:
                    break;
            }
        }
    }
}
/* 串口配置函數(shù),baud-通信波特率 */
void ConfigUART(unsigned int baud)
{
    SCON  = 0x50;  //配置串口為模式1
    TMOD &= 0x0F;  //清零T1的控制位
    TMOD |= 0x20;  //配置T1為模式2
    TH1 = 256 - (11059200/12/32)/baud;  //計(jì)算T1重載值
    TL1 = TH1;     //初值等于重載值
    ET1 = 0;       //禁止T1中斷
    ES  = 1;       //使能串口中斷
    TR1 = 1;       //啟動(dòng)T1
}
/* UART中斷服務(wù)函數(shù) */
void InterruptUART() interrupt 4
{
    if (RI)  //接收到字節(jié)
    {
        RI = 0;  //清零接收中斷標(biāo)志位
        cmdIndex = SBUF;  //接收到的數(shù)據(jù)保存到命令索引中
        cmdArrived = 1;   //設(shè)置命令到達(dá)標(biāo)志
    }
    if (TI)  //字節(jié)發(fā)送完畢
    {
        TI = 0;  //清零發(fā)送中斷標(biāo)志位
        if (cntTxd > 0)  //有待發(fā)送數(shù)據(jù)時(shí),繼續(xù)發(fā)送后續(xù)字節(jié)
        {
            SBUF = *ptrTxd;  //發(fā)出指針指向的數(shù)據(jù)
            cntTxd--;        //發(fā)送計(jì)數(shù)器遞減
            ptrTxd++;        //發(fā)送指針遞增
        }
    }
}



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

使用道具 舉報(bào)

沙發(fā)
ID:58502 發(fā)表于 2015-1-4 14:47 | 只看該作者
你串口號(hào)沒(méi)設(shè)置好,你用stc-isp用的是com2,而用串口調(diào)試精靈確是com1,所以接收不到,把com1改為com2就可以了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久免费丝袜 | 夜久久 | 欧美一级二级视频 | 亚洲国产精品视频一区 | 久草中文在线观看 | 亚洲网站在线观看 | 一区欧美 | 亚洲精品视频在线看 | 欧美一区免费 | 国产精品久久久99 | 欧美精品二区 | 最新中文字幕第一页视频 | 日日人人 | 一区二区三区高清 | 欧美日韩一区不卡 | 中文字幕精品视频 | 国产精品一区二区久久 | 91亚洲国产成人久久精品网站 | av黄色免费 | 国产成人福利视频在线观看 | 日韩国产欧美视频 | 欧美一级做性受免费大片免费 | 成人福利在线观看 | 欧美日韩成人影院 | 精品国产一区二区三区四区在线 | 欧美在线国产精品 | 激情欧美一区二区三区中文字幕 | 成人精品| 国产乱码精品一区二区三区中文 | av电影一区 | 午夜国产一级 | 日韩免费一区二区 | 久久99精品国产 | 一区二区视频在线 | 久久高清国产视频 | 免费看91 | 成人在线观看中文字幕 | 久久噜噜噜精品国产亚洲综合 | 久久丝袜 | www.亚洲免费| 国产免费高清 |