找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2351|回復(fù): 8
收起左側(cè)

尷尬了。忘記單片機串口怎么發(fā)送十六進制了?

[復(fù)制鏈接]
ID:590194 發(fā)表于 2021-6-21 18:02 | 顯示全部樓層 |閱讀模式
SendString("STC15F2K60S2\r\nUart2 Test !\r\n");這個沒問題,是字符串。
怎么發(fā)送SendString(74)SendString(A1) ,這種十六進制數(shù)據(jù)?
這個dat的類型改成啥?忘記了。。

void SendData(BYTE dat)
{
    while (busy);               //等待前面的數(shù)據(jù)發(fā)送完成
    ACC = dat;                  //獲取校驗位P (PSW.0)
    if (P)                      //根據(jù)P來設(shè)置校驗位
    {
#if (PARITYBIT == ODD_PARITY)
        S2CON &= ~S2TB8;        //設(shè)置校驗位為0
#elif (PARITYBIT == EVEN_PARITY)
        S2CON |= S2TB8;         //設(shè)置校驗位為1
#endif
    }
    else
    {
#if (PARITYBIT == ODD_PARITY)
        S2CON |= S2TB8;         //設(shè)置校驗位為1
#elif (PARITYBIT == EVEN_PARITY)
        S2CON &= ~S2TB8;        //設(shè)置校驗位為0
#endif
    }
    busy = 1;
    S2BUF = ACC;                //寫數(shù)據(jù)到UART2數(shù)據(jù)寄存器
}

回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2021-6-21 19:34 | 顯示全部樓層
下面就是串口怎么發(fā)送十六進制程序,Udat是一個十六進制數(shù),你把發(fā)字符看到最后就是它:
void Uart1_SendChar(unsigned char Udat)
{
        SBUF=Udat;                //將要發(fā)送的數(shù)據(jù)放入串口數(shù)據(jù)緩沖區(qū)
        while(!TI);                //等待發(fā)送完成
    TI=0;                     //清零TI發(fā)送完成標記               
}
回復(fù)

使用道具 舉報

ID:939710 發(fā)表于 2021-6-22 00:25 | 顯示全部樓層
發(fā)送都是二進制,也可以說是十六進制,都是一個字節(jié)。至于是字符還是十六進制數(shù)值是看你怎么接收,同樣發(fā)0x30H,你按字符收就是字符0,按十六進制收就是0x30h
回復(fù)

使用道具 舉報

ID:941274 發(fā)表于 2021-6-22 08:55 來自手機 | 顯示全部樓層
直接設(shè)定16進制值
回復(fù)

使用道具 舉報

ID:811711 發(fā)表于 2021-6-22 08:57 | 顯示全部樓層
lishengaha 發(fā)表于 2021-6-22 00:25
發(fā)送都是二進制,也可以說是十六進制,都是一個字節(jié)。至于是字符還是十六進制數(shù)值是看你怎么接收,同樣發(fā)0x ...

就是這個理解
回復(fù)

使用道具 舉報

ID:590194 發(fā)表于 2021-6-22 11:26 來自手機 | 顯示全部樓層
我看錯了我去,前面0x就是16進制,我去
回復(fù)

使用道具 舉報

ID:390416 發(fā)表于 2021-7-6 20:28 | 顯示全部樓層

串口1打印程序 可以打印3個十六位的變量 波特率9600 http://www.torrancerestoration.com/bbs/dpj-201660-1.html

串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復(fù)位 http://www.torrancerestoration.com/bbs/dpj-200927-1.html
回復(fù)

使用道具 舉報

ID:954312 發(fā)表于 2021-7-19 23:46 | 顯示全部樓層
單片機的串口是,你給的是什么格式他就發(fā)送什么格式,在使用串口助手接收到時候也會出現(xiàn)“用什么顯示的選項”:
1.如果你串口發(fā)送的是16進制數(shù),可以直接把16進制數(shù)放到數(shù)組里面進行發(fā)送,也可以用sprintf函數(shù)對數(shù)據(jù)進行格式化成16進制格式,在進行發(fā)送。
2.如果你想發(fā)送ASCII碼,就要把數(shù)據(jù)轉(zhuǎn)換成字符串或者ASCII碼進行發(fā)送



回復(fù)

使用道具 舉報

ID:950946 發(fā)表于 2021-7-20 11:43 | 顯示全部樓層
這個需要上位機顯示16進制,而不是發(fā)送16進制。這邊推薦正點原子的上位機
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表