資源簡介
單片機(jī)接收數(shù)據(jù)幀幀頭幀尾校驗(yàn)數(shù)據(jù)解析C語言,采用VS2010編譯器書寫,已經(jīng)通過驗(yàn)證,單片機(jī)里面也十分實(shí)用。雙向鏈表方法。

代碼片段和文件信息
/*?main.c?*/
#include?
#include?“parser.h“
int?main()
{
????uint8?i;
????//?數(shù)據(jù)頭
????uint8?data_header[5]?=?{0xAA?0xAA?0x04?0x80?0x02};
uint8?data_footer[2]?=?{0xA5?0X5A};
????//?要解析的數(shù)據(jù),測試用
????uint8?data[]?=?{
????????0xAA?0xAA?0x04?0x80?0x02?0x00?0x02?0x7B?0xA5?0X5A
0xAA?0xAA?0x04?0x80?0x02?0x00?0x08?0x75?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x00?0x9B?0xE2?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x00?0xF6?0x87?0xA5?0X5A
0xAA?0xAA?0x04?0x80?0x02?0x00?0xEC?0x91?0xA5?0X5A
0xAA?0xAA?0x04?0x80?0x02?0x01?0x15?0x67?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x01?0x49?0x33?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x00?0xE7?0x96?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x00?0x68?0x15?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x00?0x3C?0x41?0xA5?0X5A
0xAA?0xAA?0x04?0x80?0x02?0x00?0x66?0x17?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x00?0xA5?0xD8?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x01?0x26?0x56?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x01?0x73?0x09?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x01?0x64?0x18?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x01?0x8B?0xF1?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x01?0xC6?0xB6?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x01?0x7B?0x01?0xA5?0X5A
????????0xAA?0xAA?0x04?0x80?0x02?0x00?0xCB?0xB2?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0x00?0x2C?0x51?0xA5?0X5A?
0xAA?0xAA?0x04?0x80?0x02?0xFF?0xE5?0x99?0xA5?0X5A
????};
????/**
?????*?初始化一個(gè)解析器
?????*?第一個(gè)參數(shù)是數(shù)據(jù)頭
?????*?第二個(gè)參數(shù)是數(shù)據(jù)頭長度
?????*?第三個(gè)參數(shù)是數(shù)據(jù)尾指針
?????*?第四個(gè)參數(shù)是數(shù)據(jù)尾大小
?????*?第五個(gè)參數(shù)是一整幀數(shù)據(jù)的大小
?????*/
????DataParser?*data_parser?=?parser_init(data_header?sizeof(data_header)?data_footer?sizeof(data_footer)?10);
????//?將要解析的數(shù)據(jù)逐個(gè)取出,添加到解析器中
????for(i?=?0;?i?????{
????????//?解析數(shù)據(jù),返回?RESULT_TRUE?代表成功解析出一組數(shù)據(jù)
????????if(parser_put_data(data_parser?data[i])?==?RESULT_TRUE)
????????{
????????????printf(“成功解析出一幀數(shù)據(jù)...\n“);
????????????/*?一位一位取出解析后的數(shù)據(jù)?*/
????????????printf(“第一個(gè)數(shù)據(jù)是:0x%x\n“?parser_get_data(data_parser?0));
????????????printf(“第二個(gè)數(shù)據(jù)是:0x%x\n“?parser_get_data(data_parser?1));
????????????printf(“第三個(gè)數(shù)據(jù)是:0x%x\n\n\n“?parser_get_data(data_parser?2));
????????}
????}
????//?當(dāng)不再需要解析器時(shí),應(yīng)該把解析器釋放掉,回收內(nèi)存,避免造成內(nèi)存泄漏
????parser_release(data_parser);
while(1);
????return?0;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-02-17?09:14??queue\
?????目錄???????????0??2018-02-17?10:00??queue\queue\
?????目錄???????????0??2018-02-17?09:38??queue\queue\Debug\
?????文件???????32256??2018-02-17?09:51??queue\queue\Debug\queue.exe
?????文件??????317684??2018-02-17?09:51??queue\queue\Debug\queue.ilk
?????文件??????420864??2018-02-17?09:51??queue\queue\Debug\queue.pdb
?????目錄???????????0??2018-02-17?09:15??queue\queue\ipch\
?????目錄???????????0??2018-02-17?09:17??queue\queue\ipch\queue-7f1e603\
?????文件?????1441792??2018-02-17?09:50??queue\queue\ipch\queue-7f1e603\queue-e1da8591.ipch
?????目錄???????????0??2018-02-17?09:24??queue\queue\queue\
?????目錄???????????0??2018-02-17?09:51??queue\queue\queue\Debug\
?????文件????????2940??2018-02-17?09:51??queue\queue\queue\Debug\CL.read.1.tlog
?????文件????????1440??2018-02-17?09:51??queue\queue\queue\Debug\CL.write.1.tlog
?????文件????????7141??2018-02-17?09:51??queue\queue\queue\Debug\app.obj
?????文件????????1894??2018-02-17?09:51??queue\queue\queue\Debug\cl.command.1.tlog
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件???????????2??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件????????1716??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件????????3162??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件?????????922??2018-02-17?09:51??queue\queue\queue\Debug\li
?????文件?????????366??2018-02-17?09:51??queue\queue\queue\Debug\mt.command.1.tlog
?????文件?????????298??2018-02-17?09:51??queue\queue\queue\Debug\mt.read.1.tlog
?????文件?????????298??2018-02-17?09:51??queue\queue\queue\Debug\mt.write.1.tlog
............此處省略26個(gè)文件信息
評(píng)論
共有 條評(píng)論