找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

怎么把ADS1248采集到的數(shù)據(jù)發(fā)送出去?

[復(fù)制鏈接]
ID:792635 發(fā)表于 2023-7-10 17:01 | 顯示全部樓層 |閱讀模式
1.png
將采集到的電流放在Var->ADS1248_CON1.Result[0]中,電壓放在Var->ADS1248_CON1.Result[3]中(電壓暫時(shí)不用管),想通過usartSendData(Var->ADS1248_CON1.Result[0],(Var->ADS1248_CON1.Result[3]))函數(shù)在一幀里發(fā)送,下面是usartSendData函數(shù)

const unsigned char header[2]  = {0x55, 0xaa};
const unsigned char ender[2]   = {0x0d, 0x0a};

void usartSendData(unsigned int current, unsigned int voltage)
{
        // 協(xié)議數(shù)據(jù)緩存數(shù)組
        unsigned char buf[10] = {0};
        int i, length = 0;


        // 設(shè)置消息頭
        for(i = 0; i < 2; i++)
                buf[ i] = header[ i];                      // buf[0] buf[1]

        // 設(shè)置采集數(shù)據(jù)長度與采集值
        length = 4;
        buf[2] = length;     // buf[2]

        // 將result[0]的電流值存儲(chǔ)到buf數(shù)組的第4、5位
        buf[3] = (current >> 8) & 0xFF;  // 高位
        buf[4] = current & 0xFF;         // 低位


        // 將result[3]的電壓值存儲(chǔ)到buf數(shù)組的第6、7位

        buf[5] = (voltage >> 8) & 0xFF;  // 高位
        buf[6] = voltage & 0xFF;         // 低位


        // 設(shè)置校驗(yàn)值、消息尾
        buf[3 + length] = getDataSum(buf, 7);  // buf[7]
        buf[3+ length + 1] = ender[0];              // buf[8]
        buf[3+ length + 2] = ender[1];              // buf[9]

        //發(fā)送字符串?dāng)?shù)據(jù)
        USART_Send_String(buf,sizeof(buf));
2.png
接收到的電流不對(duì),而且?guī)缀跻恢笔且粋(gè)固定的數(shù),請問大家是哪里出錯(cuò)了?
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-7-10 18:11 | 顯示全部樓層
你這是32位單片機(jī),int是4字節(jié)的,你當(dāng)2字節(jié)的了。
回復(fù)

使用道具 舉報(bào)

ID:792635 發(fā)表于 2023-7-10 20:22 | 顯示全部樓層
Hephaestus 發(fā)表于 2023-7-10 18:11
你這是32位單片機(jī),int是4字節(jié)的,你當(dāng)2字節(jié)的了。

那是應(yīng)該把電流和電壓原本的占2個(gè)字節(jié)改成占4個(gè)字節(jié)嗎
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-7-10 23:40 | 顯示全部樓層
15547989435 發(fā)表于 2023-7-10 20:22
那是應(yīng)該把電流和電壓原本的占2個(gè)字節(jié)改成占4個(gè)字節(jié)嗎

通訊協(xié)議不能改,你就要把current改成2字節(jié)的。

如果你可以改協(xié)議,那就改唄。
回復(fù)

使用道具 舉報(bào)

ID:792635 發(fā)表于 2023-7-11 10:29 | 顯示全部樓層
Hephaestus 發(fā)表于 2023-7-10 23:40
通訊協(xié)議不能改,你就要把current改成2字節(jié)的。

如果你可以改協(xié)議,那就改唄。

我現(xiàn)在的問題是發(fā)送個(gè)設(shè)定好的值就可以正常發(fā)送,但發(fā)送Var->ADS1248_CON1.Result[0]里的值發(fā)送不了,這是什么原因
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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