高h视频在线 I 最新中文字幕第一页 I jlzzjlzz全部女高潮视频 I 毛片a I 金瓶狂野欧美性猛交xxxx I 黄色三级av I 啪啪网址大全 I 日日草av I 秋霞视频一区二区 I 超碰国产在线 I 91美女视频在线观看 I 天堂中文网在线 I 久久人妻少妇嫩草av蜜桃 I 久久麻豆av I 东热激情アナル奸特集 I 久久er99热精品一区二区 I 青娱乐精品 I 国产成人精品视频ⅴa片软件竹菊 I 欧美亚洲综合网 I 欲色淫香 I 色午夜婷婷 I 日本最新在线视频 I 亚洲情趣在线观看 I av人摸人人人澡人人超碰下载 I 第一福利av导航 I 波多野结衣乱码中文字幕 I 狠狠综合久久av I 国产精品污污网站在线观看 I 国产黄频免费高清视频 I 日韩亚洲二区 I 无码人妻h动漫网站 I 色狠久久 I 女人爽到高潮免费看视频 I 在线能看的你懂的 I 亚洲国产欧美日韩在线人成 I 天天在线干 I 国产视频激情 I 粗大的内捧猛烈进出小视频 I 亚洲女线av影视宅男宅女天堂

串口自由協議通訊
發布時間: 2022-11-23 預覽次數:


利用串口設備控件image.png,可以實現用戶的自由協議通訊。默認的協議格式如下:


協議頭(2字節)命令(2字節)數據長度(1字節)數據(N)校驗(1字節 可選)
0xFF55Cmdlendatachecksum

  1. 添加串口設備,并指定正確的通訊參數。

    HMI下只有三路串口:COM1-232;COM2-485;COM3-422;


image.png


2.IDE會在“sintt_app.c”自動生成相應代碼


void app_init()

{

        //串口初始化

uart_obj1.head1 = UART_CMD_HEAD1;//幀頭1

uart_obj1.head2 = UART_CMD_HEAD2;//幀頭2

uart_obj1.enableCheckSum = false; //不開啟校驗和

uart_obj1.pkgMinLen = 5;//幀最小長度,不啟用校驗和為5,啟用校驗和設為6

uart_obj1.mParse = parseProtocol_uart_obj1;//串口接收數據回調函數

sintt_uart_init(&uart_obj1, "COM1", 115200, 8, 0, 1);//這里設置的是HMI的設置,如果在win32下模擬運行,需要設置為電腦連接的串口,串口號必須小于10.

}

//串口接收數據回調函數,協議解析回調函數

int parseProtocol_uart_obj1(void *var, const uint8_t *pData, uint16_t len) {

SINTT_UART *uart_var = (SINTT_UART*) var;

uint16_t remainLen = len; // 剩余數據長度

uint16_t dataLen; // 數據包長度

uint16_t frameLen; // 幀長度


//以下部分需要根據協議格式進行相應的修改,解析出每一幀的數據

while (remainLen >= uart_var->pkgMinLen) {

// 找到一幀數據的數據頭

while ((remainLen >= 2) && ((pData[0] != uart_var->head1) || (pData[1] != uart_var->head2))) {

pData++;

remainLen--;

continue;

}


if (remainLen < uart_var->pkgMinLen) {

break;

}


dataLen = pData[4];

frameLen = dataLen + uart_var->pkgMinLen;

if (frameLen > remainLen) {

// 數據內容不全

break;

}

// 支持checksum校驗,需要時在CommDef.h文件中打開PRO_SUPPORT_CHECK_SUM宏

if (uart_var->enableCheckSum) { //啟用校驗和

// 檢測校驗碼

if (uart_var->getCheckSum(pData, frameLen - 1) == pData[frameLen - 1]) {

// 解析一幀數據

procParse_uart_obj1(pData, frameLen);

} else {


}

} else { // 解析一幀數據

procParse_uart_obj1(pData, frameLen);

}


pData += frameLen;

remainLen -= frameLen;

}


return len - remainLen; //已解析指令長度

}


//解析每一幀數據,用戶只需關注這個函數解析指令

void procParse_uart_obj1(const uint8_t *pData, uint16_t len) {

//以下例程假設定義了變量:rotate_speed、rotate_speed1、line_radius

uint16_t cmd = (pData[2] << 8) | pData[3];

uint32_t *addr;

switch (cmd) {

case UART_CMD_0: //16位無符號型數據存儲

//rotate_speed=(pData[5]<<8)|pData[6];

//sintt_notify_var_changed(&rotate_speed);//通知UI線程更新數據

break;

case UART_CMD_1: //32位無符號型數據存儲

//rotate_speed1=(pData[5]<<24)|(pData[6]<<16)|(pData[7]<<8)|pData[8];

//sintt_notify_var_changed(&rotate_speed1);//通知UI線程更新數據

break;

case UART_CMD_2: //float型數據存儲,發送數據時也參考

//addr=(uint32_t)(&line_radius);

//*addr=(pData[5]<<24)|(pData[6]<<16)|(pData[7]<<8)|pData[8];

//sintt_notify_var_changed(&line_radius);//通知UI線程更新數據

break;

}

}

解析指令的例程中定義了三個變量,uint16_t rotate_speed、uint32_t rotate_speed1、float line_radius,用戶可參考增加指令和變量。


發送數據:


例程代碼如下:

1)發送16位數

        uint8_t mdata[20];

int len=0;

int sendData=1234;

mdata[len++]=uart_obj1.head1;

mdata[len++]=uart_obj1.head2;

mdata[len++]=UART_CMD_0>>16;

mdata[len++]=UART_CMD_0;

mdata[len++]=0x02;

mdata[len++]=sendData>>8;

mdata[len++]=sendData;

uart_obj1.mSend(&uart_obj1,mdata,len);


2)發送32位數

        uint8_t mdata[20];

int len=0;

int sendData=1234567;

mdata[len++]=uart_obj1.head1;

mdata[len++]=uart_obj1.head2;

mdata[len++]=UART_CMD_1>>16;

mdata[len++]=UART_CMD_1;

mdata[len++]=0x04;

mdata[len++]=sendData>>24;

mdata[len++]=sendData>>16;

mdata[len++]=sendData>>8;

mdata[len++]=sendData;

uart_obj1.mSend(&uart_obj1,mdata,len);


3)發送浮點數

        uint8_t mdata[20];

int len=0;

float temp=123.45f;

uint32_t *p=&temp;

mdata[len++]=uart_obj1.head1;

mdata[len++]=uart_obj1.head2;

mdata[len++]=UART_CMD_2>>16;

mdata[len++]=UART_CMD_2;

mdata[len++]=0x04;

mdata[len++]=(*p)>>24;

mdata[len++]=(*p)>>16;

mdata[len++]=(*p)>>8;

mdata[len++]=(*p);

uart_obj.mSend(&uart_obj,mdata,len);


串口設備.gif





上一篇: 已經沒有了
下一篇: 已經沒有了
主站蜘蛛池模板: 熟妇人妻av无码一区二区视频 | av在线免费播放 | 欧美日韩国产专区一区二区 | www.日韩欧美| 久久精品无码一区二区三区免费 | 天天躁夜夜躁狠狠久久 | 无码少妇一区二区三区浪潮av | 国产中文字幕在线播放 | 国产在线视频福利 | 久久精品国内 | 玖玖色在线 | 欧美日韩亚洲中文字幕一区二区三区 | 蜜桃一二三区 | 国内少妇高清露脸精品视频 | 亚洲国内自拍 | 又爽又黄无遮拦成人网站 | 欲妇荡岳丰满少妇岳 | 日韩免费成人在线 | 久久99精品久久久久久无毒不卡8 | 国产视频日韩欧美 | 亚洲一区二区三区无码中文字幕 | 国产午夜视频在线 | 日韩第1页 | 67194熟妇在线直接进入 | av一区三区 | 老熟女一区二区免费 | 国产又色又爽又黄的在线观看 | 成人性生交大片免费看- | 欧美激情国产一区 | 亚洲春色av无码专区最 | 欧洲精品一卡2卡三卡4卡影视 | 在线播放无码后入内射少妇 | 免费国偷自产拍精品视频 | 亚洲欧洲久久av | 欧美一级特黄视频 | 糟蹋小少妇17p | 男女免费隐私网站 | 色爱成人综合 | 综合亚洲桃色第一影院 | 亚洲精品92内射 | 欧美xxxxx精品 | 能免费看黄色的网站 | 中文在线视频观看 | 国语精品一区二区三区 | 黑人jizz29性黑人 | 国产与黑人在线播放 | 18禁无遮挡无码国产免费网站 | 人妻精油按摩bd高清中文字幕 | 熟妇人妻午夜寂寞影院 | 精品无码一区二区三区不卡 | 精品久久久无码人妻字幂 | 91免费视频播放 | 国产一码二码三码区别 | 国内爆初菊对白视频 | 老女人伦理中文字幕 | 久久五十路丰满熟女中出 | 老司机久久一区二区三区 | 99re在线观看 | 偷看少妇自慰xxxx | 亚洲裸男自慰gv网站 | 免费看撕开奶罩揉吮奶头视频 | 国产真实乱对白精彩久久小说 | 农村妇女毛片精品久久久 | 日本三级视频在线播放 | 怡红院精品久久久久久久高清 | 国产精品多人p群无码 | 三级色图 | 一区二区三区欧美视频 | 久热在线播放中文字幕 | 成人欧美一区二区三区在线播放 | 久久精品成人免费国产 | 蜜臀视频一区二区在线播放 | 人人超碰人摸人爱 | 黄瓜视频在线观看 | 99久久久国产精品免费无卡顿 | 啪啪拍网站 | 国产肥白大熟妇bbbb视频 | 亚洲中文字幕伊人久久无码 | 日韩人妻潮喷中文在线视频 | 中文字幕在线观看91 | 国产二区视频在线观看 | 高潮的毛片激情久久精品 | 99国产精品久久久久久久夜 | 青青草精品视频 | 亚洲精品午夜久久久久久久久久久 | 久久精品卫校国产小美女 | 日韩在线精品强乱中文字幕 | 日本黄区免费视频观看 | 亚洲蜜芽在线精品一区 | 一区二区三区国产在线 | 丰满人妻无奈张开双腿av | 亚洲品精一区三区三区三区 | 67194熟妇人妻欧美日韩 | 无码国产精品一区二区免费16 | 自拍偷在线精品自拍偷 | 特级小箩利无码毛片 | 337p日本大胆欧美裸体艺术 | 国产精品乱码一区二区三 | 欧美性猛交7777777 |