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

代碼片段和文件信息
/*?main.c?*/
#include?
#include?“parser.h“
int?main()
{
????uint8?i;
????//?數據頭
????uint8?data_header[5]?=?{0xAA?0xAA?0x04?0x80?0x02};
uint8?data_footer[2]?=?{0xA5?0X5A};
????//?要解析的數據,測試用
????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
????};
????/**
?????*?初始化一個解析器
?????*?第一個參數是數據頭
?????*?第二個參數是數據頭長度
?????*?第三個參數是數據尾指針
?????*?第四個參數是數據尾大小
?????*?第五個參數是一整幀數據的大小
?????*/
????DataParser?*data_parser?=?parser_init(data_header?sizeof(data_header)?data_footer?sizeof(data_footer)?10);
????//?將要解析的數據逐個取出,添加到解析器中
????for(i?=?0;?i?????{
????????//?解析數據,返回?RESULT_TRUE?代表成功解析出一組數據
????????if(parser_put_data(data_parser?data[i])?==?RESULT_TRUE)
????????{
????????????printf(“成功解析出一幀數據...\n“);
????????????/*?一位一位取出解析后的數據?*/
????????????printf(“第一個數據是:0x%x\n“?parser_get_data(data_parser?0));
????????????printf(“第二個數據是:0x%x\n“?parser_get_data(data_parser?1));
????????????printf(“第三個數據是:0x%x\n\n\n“?parser_get_data(data_parser?2));
????????}
????}
????//?當不再需要解析器時,應該把解析器釋放掉,回收內存,避免造成內存泄漏
????parser_release(data_parser);
while(1);
????return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個文件信息
評論
共有 條評論