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

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

環(huán)境:

主機:WIN10

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

MCU:STM32F407


說明:

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

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


功能:

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

輸入動作指令,讓設(shè)備進行一些動作

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

指令:

H:幫助

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

O1:打開1號模塊,打開其他模塊指令類似

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

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

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

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

A1:執(zhí)行1號動作,執(zhí)行其他動作指令類似

源代碼:

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模塊編號

*/

#defineLOG_TEST0

#defineLOG_CLOCK1

#defineLOG_DW10002

#defineLOG_DW1000_STATUS3

#defineLOG_DEAL_BUS4

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

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

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

/**

*@brief日志

*/

struct_Log

{

//公有日志

//收到移動點數(shù)據(jù)次數(shù)

uint32_tnum_rf_rx;

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

uint32_tnum_time_out_delete;

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

uint32_tnum_rf_tx;

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

uint32_tnum_rf_time;

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

uint32_tnum_rf_random_tx;

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

uint32_tnum_reset;

//運行時間,分度為0.5s

uint32_ttime_run;

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

uint32_tnum_sync_pulse;

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

uint32_tnum_bus_poll;

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

uint32_tnum_bus_down_cmd;

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

uint32_tnum_bus_down_cmd_dot;

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

uint32_tnum_valid_bus;

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

uint32_tnum_invalid_bus;

//接收時間錯誤

uint32_tnum_time_error;

//私有日志

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

uint32_tnum_dw1000_error[NUM_DW1000];

//接收時間錯誤

uint32_tnum_dw1000_time_error[NUM_DW1000];

//輪詢超時被刪除點數(shù)

uint32_tnum_poll_time_out_delete;

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

uint32_tnum_dw1000_time_out_reset[NUM_DW1000];

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

uint32_tnum_dw1000_status_error[NUM_DW1000];

};

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

*函數(shù)

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

/**

*@brief模塊加載

*/

voidlog_load(void);

/**

*@brief讀取日志

*@retval日志

*/

struct_Loglog_read(void);

/**

*@brief清除日志

*/

voidlog_clear(void);

/**

*@brief收到移動點數(shù)據(jù)次數(shù)

*/

voidlog_write_num_rf_rx(void);

/**

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

*/

voidlog_write_num_time_out_delete(void);

/**

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

*/

voidlog_write_num_rf_tx(void);

/**

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

*/

voidlog_write_num_rf_time(void);

/**

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

*/

voidlog_write_num_rf_random_tx(void);

/**

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

*/

voidlog_write_num_reset(void);

/**

*@brief運行時間

*@paramadd_time:增加的時間.單位:0.5s

*/

voidlog_write_time_run(uint32_tadd_time);

/**

*@brief收到同步脈沖計數(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ù)命令中事件個數(shù)

*/

voidlog_write_num_bus_down_cmd_dot(void);

/**

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

*/

voidlog_write_num_valid_bus(void);

/**

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

*/

voidlog_write_num_invalid_bus(void);

/**

*@brief收到時間錯誤

*/

voidlog_write_num_time_error(void);

/**

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

*@paramindex:模塊序號,從0開始

*/

voidlog_write_num_dw1000_error(uint8_tindex);

/**

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

*@paramindex:模塊序號,從0開始

*/

voidlog_write_num_dw1000_time_error(uint8_tindex);

/**

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

*/

voidlog_write_num_poll_time_out_delete(void);

/**

* @brief dw100

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

8位單片機在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關(guān)鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關(guān)鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關(guān)內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 異常復(fù)位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關(guān)鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認識和了解,詳細內(nèi)容如下。

關(guān)鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關(guān)介紹,詳細內(nèi)容請看下文。

關(guān)鍵字: 單片機 數(shù)字信號 模擬信號
關(guān)閉