您的位置 首页 方案

单片机对日志体系的规划

单片机对日志系统的设计-为单片机设计了一套简单的日志系统,通过日志系统提供的接口可以查看设备状态,并进行一些基本的调试。

日志系统通过串口输出,所以单片机需要准备一个串口供日志系统使用。注意串口发送不能用DMA发送(避免在在中断中打印日志造成的中断竞争),接收可以用DMA接收。

环境:

主机:WIN10

开发环境:MDK5.12

MCU:STM32F407

阐明:

单片机规划了一套简略的日志体系,经过日志体系供给的接口能够检查设备状况,并进行一些根本的调试。

日志体系经过串口输出,所以单片机需求预备一个串口供日志体系运用。留意串口发送不能用DMA发送(防止在在中止中打印日志形成的中止竞赛),接纳能够用DMA接纳。

单片机对日志体系的规划

功用:

翻开/封闭各个模块的调试输出

输入动作指令,让设备进行一些动作

打印体系运转日志

指令:

H:协助

O:调试输出全开

O1:翻开1号模块,翻开其他模块指令相似

F:调试输出全关

F1:封闭1号模块

I:输出体系日志

C:铲除体系日志

A1:履行1号动作,履行其他动作指令相似

源代码:

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日志模块数量

*/

#defineNUM_LOG5

/**

*@brief模块编号

*/

#defineLOG_TEST0

#defineLOG_CLOCK1

#defineLOG_DW10002

#defineLOG_DW1000_STATUS3

#defineLOG_DEAL_BUS4

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

*数据结构

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

/**

*@brief日志

*/

struct_Log

{

//公有日志

//收到移动点数据次数

uint32_tnum_rf_rx;

//发送超时被删去点数

uint32_tnum_TIme_out_delete;

//RF发送次数

uint32_tnum_rf_tx;

//RF校时或分配事情次数

uint32_tnum_rf_TIme;

//RF随机信道发送次数

uint32_tnum_rf_random_tx;

//复位次数

uint32_tnum_reset;

//运转时刻,分度为0.5s

uint32_tTIme_run;

//收到同步脉冲计数

uint32_tnum_sync_pulse;

//收到422轮询/事情帧次数

uint32_tnum_bus_poll;

//收到422业务指令次数

uint32_tnum_bus_down_cmd;

//收到422业务指令中事情个数

uint32_tnum_bus_down_cmd_dot;

//收到有用的422帧次数

uint32_tnum_valid_bus;

//收到无效的422帧次数

uint32_tnum_invalid_bus;

//接纳时刻过错

uint32_tnum_TIme_error;

//私有日志

//dw1000芯片过错次数

uint32_tnum_dw1000_error[NUM_DW1000];

//接纳时刻过错

uint32_tnum_dw1000_time_error[NUM_DW1000];

//轮询超时被删去点数

uint32_tnum_poll_time_out_delete;

//接纳超时复位

uint32_tnum_dw1000_time_out_reset[NUM_DW1000];

//dw1000芯片状况过错次数

uint32_tnum_dw1000_status_error[NUM_DW1000];

};

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

*函数

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

/**

*@brief模块加载

*/

voidlog_load(void);

/**

*@brief读取日志

*@retval日志

*/

struct_Loglog_read(void);

/**

*@brief铲除日志

*/

voidlog_clear(void);

/**

*@brief收到移动点数据次数

*/

voidlog_write_num_rf_rx(void);

/**

*@brief发送超时被删去点数

*/

voidlog_write_num_time_out_delete(void);

/**

*@briefRF发送次数

*/

voidlog_write_num_rf_tx(void);

/**

*@briefRF校时或分配事情次数

*/

voidlog_write_num_rf_time(void);

/**

*@briefRF随机信道发送次数

*/

voidlog_write_num_rf_random_tx(void);

/**

*@brief复位次数

*/

voidlog_write_num_reset(void);

/**

*@brief运转时刻

*@paramadd_time:添加的时刻。单位:0.5s

*/

voidlog_write_time_run(uint32_tadd_time);

/**

*@brief收到同步脉冲计数

*/

voidlog_write_num_sync_pulse(void);

/**

*@brief收到422轮询/事情帧次数

*/

voidlog_write_num_bus_poll(void);

/**

*@brief收到422业务指令次数

*/

voidlog_write_num_bus_down_cmd(void);

/**

*@brief收到422业务指令中事情个数

*/

voidlog_write_num_bus_down_cmd_dot(void);

/**

*@brief收到有用的422帧次数

*/

voidlog_write_num_valid_bus(void);

/**

*@brief收到无效的422帧次数

*/

voidlog_write_num_invalid_bus(void);

/**

*@brief收到时刻过错

*/

voidlog_write_num_time_error(void);

/**

*@briefdw1000芯片过错次数

*@paramindex:模块序号,从0开端

*/

voidlog_write_num_dw1000_error(uint8_tindex);

/**

*@briefdw1000芯片接纳时刻过错次数

*@paramindex:模块序号,从0开端

*/

voidlog_write_num_dw1000_time_error(uint8_tindex);

/**

*@brief轮询超时被删去点数

*/

voidlog_write_num_poll_time_out_delete(void);

/**

* @brief dw100

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/345573.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部