找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1654|回復: 1
收起左側(cè)

如何將sprintf構(gòu)造的字符串通過單片機串口發(fā)送給上位機?

[復制鏈接]
ID:670111 發(fā)表于 2021-4-29 20:19 | 顯示全部樓層 |閱讀模式
本人在學習串口發(fā)送字符串的時候遇到問題,如下:(部分程序)       char buffer[100] = {0};
           str[0]=U8RH_data_H;
           str[1]=U8RH_data_L;
           str[2]=U8T_data_H;
           str[3]=U8T_data_L;
           str[4]=U8checkdata;
           sprintf(buffer,"temp is:%d℃,humi is:%dRH", str[2], str[0]);

初始化:
        TMOD = 0x20;          //定時器T1使用工作方式2
        TH1 = 253;        // 設(shè)置初值
        TL1 = 253;
        TR1 = 1;          // 開始計時
        SCON = 0x50;          //工作方式1,波特率9600bps,允許接收   
        ES = 1;
        EA = 1;           // 打開所以中斷   
        TI = 0;
        RI = 0;

請問如何將我用sprintf構(gòu)造的字符串通過串口發(fā)送給上位機??
回復

使用道具 舉報

ID:240600 發(fā)表于 2021-4-29 22:14 | 顯示全部樓層
本帖最后由 穿山躍海 于 2021-4-29 22:15 編輯

sprintf(CMD_UART_TxBuffer,"%s%s%d%s%d%s%d%s%s%s%s",CMD_Head_HAND,CMD_Space,Address_temp,CMD_Space,Device_num_temp,CMD_Space,Data1_temp,CMD_Space,CMD_Space,CMD_Space,CMD_End);Tx_Buffer_Len=strlen(CMD_UART_TxBuffer)
CRCValue      =MODBUS_CRC16((uint8_t*)CMD_UART_TxBuffer,Tx_Buffer_Len);
printf("OK\n\r");                                                                                                
printf("%s",CMD_UART_TxBuffer);                              

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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