日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]環(huán)境:主機(jī):WIN10開發(fā)環(huán)境:MDK5.12MCU:STM32F407說明:為單片機(jī)設(shè)計(jì)了一套簡(jiǎn)單的日志系統(tǒng),通過日志系統(tǒng)提供的接口可以查看設(shè)備狀態(tài),并進(jìn)行一些基本的調(diào)試。日志系統(tǒng)通過串口輸出,所以單片機(jī)需要準(zhǔn)備一個(gè)串口供日志

環(huán)境:

主機(jī):WIN10

開發(fā)環(huán)境:MDK5.12

MCU:STM32F407


說明:

為單片機(jī)設(shè)計(jì)了一套簡(jiǎn)單的日志系統(tǒng),通過日志系統(tǒng)提供的接口可以查看設(shè)備狀態(tài),并進(jìn)行一些基本的調(diào)試。

日志系統(tǒng)通過串口輸出,所以單片機(jī)需要準(zhǔn)備一個(gè)串口供日志系統(tǒng)使用。注意串口發(fā)送不能用DMA發(fā)送(避免在在中斷中打印日志造成的中斷競(jìng)爭(zhēng)),接收可以用DMA接收。


功能:

打開/關(guān)閉各個(gè)模塊的調(diào)試輸出

輸入動(dòng)作指令,讓設(shè)備進(jìn)行一些動(dòng)作

打印系統(tǒng)運(yùn)行日志

指令:

H:幫助

O:調(diào)試輸出全開

O1:打開1號(hào)模塊,打開其他模塊指令類似

F:調(diào)試輸出全關(guān)

F1:關(guān)閉1號(hào)模塊

I:輸出系統(tǒng)日志

C:清除系統(tǒng)日志

A1:執(zhí)行1號(hào)動(dòng)作,執(zhí)行其他動(dòng)作指令類似

源代碼:

log.h:


/**

*Copyright(c),2015-2025

*@filelog.h

*@brief日志模塊主文件

*@authorjdh

*@date2015/5/7

*@update2015/6/19

*@update2015/6/23

*@update2015/6/30

*@update2015/7/8

*@update2015/7/13

*@update2015/8/12

*@update2015/8/18

*@update2016/5/17

*@update2016/6/30

*@update2016/7/22

*@update2016/8/11

*@update2016/8/24

*@update2016/9/2

*@update2016/9/5

*@update2016/9/7

*@update2016/9/9

*/

#ifndef_LOG_H_

#define_LOG_H_

/*********************************************************************

*頭文件

**********************************************************************/

#include"world.h"

#include"console.h"

/*********************************************************************

*宏定義

**********************************************************************/

/**

*@brief日志模塊數(shù)量

*/

#defineNUM_LOG5

/**

*@brief模塊編號(hào)

*/

#defineLOG_TEST0

#defineLOG_CLOCK1

#defineLOG_DW10002

#defineLOG_DW1000_STATUS3

#defineLOG_DEAL_BUS4

/*********************************************************************

*數(shù)據(jù)結(jié)構(gòu)

**********************************************************************/

/**

*@brief日志

*/

struct_Log

{

//公有日志

//收到移動(dòng)點(diǎn)數(shù)據(jù)次數(shù)

uint32_tnum_rf_rx;

//發(fā)送超時(shí)被刪除點(diǎn)數(shù)

uint32_tnum_time_out_delete;

//RF發(fā)送次數(shù)

uint32_tnum_rf_tx;

//RF校時(shí)或分配事件次數(shù)

uint32_tnum_rf_time;

//RF隨機(jī)信道發(fā)送次數(shù)

uint32_tnum_rf_random_tx;

//復(fù)位次數(shù)

uint32_tnum_reset;

//運(yùn)行時(shí)間,分度為0.5s

uint32_ttime_run;

//收到同步脈沖計(jì)數(shù)

uint32_tnum_sync_pulse;

//收到422輪詢/事件幀次數(shù)

uint32_tnum_bus_poll;

//收到422事務(wù)命令次數(shù)

uint32_tnum_bus_down_cmd;

//收到422事務(wù)命令中事件個(gè)數(shù)

uint32_tnum_bus_down_cmd_dot;

//收到有效的422幀次數(shù)

uint32_tnum_valid_bus;

//收到無(wú)效的422幀次數(shù)

uint32_tnum_invalid_bus;

//接收時(shí)間錯(cuò)誤

uint32_tnum_time_error;

//私有日志

//dw1000芯片錯(cuò)誤次數(shù)

uint32_tnum_dw1000_error[NUM_DW1000];

//接收時(shí)間錯(cuò)誤

uint32_tnum_dw1000_time_error[NUM_DW1000];

//輪詢超時(shí)被刪除點(diǎn)數(shù)

uint32_tnum_poll_time_out_delete;

//接收超時(shí)復(fù)位

uint32_tnum_dw1000_time_out_reset[NUM_DW1000];

//dw1000芯片狀態(tài)錯(cuò)誤次數(shù)

uint32_tnum_dw1000_status_error[NUM_DW1000];

};

/*********************************************************************

*函數(shù)

**********************************************************************/

/**

*@brief模塊加載

*/

voidlog_load(void);

/**

*@brief讀取日志

*@retval日志

*/

struct_Loglog_read(void);

/**

*@brief清除日志

*/

voidlog_clear(void);

/**

*@brief收到移動(dòng)點(diǎn)數(shù)據(jù)次數(shù)

*/

voidlog_write_num_rf_rx(void);

/**

*@brief發(fā)送超時(shí)被刪除點(diǎn)數(shù)

*/

voidlog_write_num_time_out_delete(void);

/**

*@briefRF發(fā)送次數(shù)

*/

voidlog_write_num_rf_tx(void);

/**

*@briefRF校時(shí)或分配事件次數(shù)

*/

voidlog_write_num_rf_time(void);

/**

*@briefRF隨機(jī)信道發(fā)送次數(shù)

*/

voidlog_write_num_rf_random_tx(void);

/**

*@brief復(fù)位次數(shù)

*/

voidlog_write_num_reset(void);

/**

*@brief運(yùn)行時(shí)間

*@paramadd_time:增加的時(shí)間.單位:0.5s

*/

voidlog_write_time_run(uint32_tadd_time);

/**

*@brief收到同步脈沖計(jì)數(shù)

*/

voidlog_write_num_sync_pulse(void);

/**

*@brief收到422輪詢/事件幀次數(shù)

*/

voidlog_write_num_bus_poll(void);

/**

*@brief收到422事務(wù)命令次數(shù)

*/

voidlog_write_num_bus_down_cmd(void);

/**

*@brief收到422事務(wù)命令中事件個(gè)數(shù)

*/

voidlog_write_num_bus_down_cmd_dot(void);

/**

*@brief收到有效的422幀次數(shù)

*/

voidlog_write_num_valid_bus(void);

/**

*@brief收到無(wú)效的422幀次數(shù)

*/

voidlog_write_num_invalid_bus(void);

/**

*@brief收到時(shí)間錯(cuò)誤

*/

voidlog_write_num_time_error(void);

/**

*@briefdw1000芯片錯(cuò)誤次數(shù)

*@paramindex:模塊序號(hào),從0開始

*/

voidlog_write_num_dw1000_error(uint8_tindex);

/**

*@briefdw1000芯片接收時(shí)間錯(cuò)誤次數(shù)

*@paramindex:模塊序號(hào),從0開始

*/

voidlog_write_num_dw1000_time_error(uint8_tindex);

/**

*@brief輪詢超時(shí)被刪除點(diǎn)數(shù)

*/

voidlog_write_num_poll_time_out_delete(void);

/**

* @brief dw100

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉