找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

在串口調試助手上自動顯示字符串

[復制鏈接]
跳轉到指定樓層
樓主
ID:277881 發(fā)表于 2018-5-7 09:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機,如何寫程序,使得在串口調試助手上面不輸入任何東西,能在接收窗口顯示字符串,求救!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:323950 發(fā)表于 2018-5-7 09:59 | 只看該作者
不是很明白問什么
回復

使用道具 舉報

板凳
ID:303383 發(fā)表于 2018-5-7 10:31 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

地板
ID:213173 發(fā)表于 2018-5-7 11:44 | 只看該作者
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]="0123456789ABCDEFGHIJKLMNOPQ\n";
void main()                                                       
{
        uint i,j;

        TMOD=0x20;//定時器1方式2(8位重載)
        TH1=0xfd;//定時器1重載
        TL1=0xfd;//定時器1重載
        TR1=1;        //開定時器1
//        REN=1;        //允許串行接收
        SM0=0;        //設置串口方式1(8位UART波特率可變)
        SM1=1;        //設置串口方式1(8位UART波特率可變)

        while(1)
        {
                i++;
                if(i>=50000)                //約1S間隔發(fā)送一次
                {
                        i=0;
                        for(j=0;j<28;j++)
                        {
                                SBUF=table[j];        //發(fā)送字符串
                                while(!TI);        //等待發(fā)送中斷請求標志位為1(已發(fā)送)
                                TI=0;                //發(fā)送中斷請求標志位清0
                        }
                }
        }
}
回復

使用道具 舉報

5#
ID:277881 發(fā)表于 2018-5-7 12:40 | 只看該作者

謝謝
就是在串口助手里邊,打開串口后,不需要在發(fā)送緩沖區(qū)輸入,接收緩沖區(qū)直接顯示一個字符串
回復

使用道具 舉報

6#
ID:277881 發(fā)表于 2018-5-7 12:42 | 只看該作者
小貓貓愛吃魚 發(fā)表于 2018-5-7 10:31
這就是串口通訊,你是要發(fā)什么數(shù)據(jù)給上位機呢,可以加我QQ

謝謝
在串口助手接收緩沖區(qū)顯示一個字符串。
回復

使用道具 舉報

7#
ID:277881 發(fā)表于 2018-5-7 22:46 | 只看該作者
wulin 發(fā)表于 2018-5-7 11:44
#include
#define uint unsigned int
#define uchar unsigned char

謝謝,但是有點問題哎,就是它一直在發(fā)送那一條程序,不是就發(fā)送一次,能幫我解決一下嗎?
非常感謝

捕獲.PNG (2.73 KB, 下載次數(shù): 39)

捕獲.PNG
回復

使用道具 舉報

8#
ID:213173 發(fā)表于 2018-5-8 05:53 | 只看該作者
z173475779 發(fā)表于 2018-5-7 22:46
謝謝,但是有點問題哎,就是它一直在發(fā)送那一條程序,不是就發(fā)送一次,能幫我解決一下嗎?
非常感 ...

只發(fā)送一次
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar table[]="0123456789ABCDEFGHIJKLMNOPQ\n";
void main()                                                        
{
        uint j;
       
        TMOD=0x20;//定時器1方式2(8位重載)
        TH1=0xfd;//定時器1重載
        TL1=0xfd;//定時器1重載
        TR1=1;        //開定時器1
//        REN=1;        //允許串行接收
        SM0=0;        //設置串口方式1(8位UART波特率可變)
        SM1=1;        //設置串口方式1(8位UART波特率可變)
        for(j=0;j<28;j++)
        {
                SBUF=table[j];        //發(fā)送字符串
                while(!TI);                //等待發(fā)送中斷請求標志位為1(已發(fā)送)
                TI=0;                //發(fā)送中斷請求標志位清0
        }       
        while(1);
}
回復

使用道具 舉報

9#
ID:277881 發(fā)表于 2018-5-9 12:19 | 只看該作者
wulin 發(fā)表于 2018-5-8 05:53
只發(fā)送一次
#include
#define uint unsigned int

非常感謝
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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