doxygen {#mainpage}

doxygen是干什么的

相信大家在看MCU原厂的帮助文档的时候,都能看到doxygen的logo在右下角,没错,doxygen就是用来生成帮助文档的

doxygen可以根据代码中的注释信息,来生成代码的一个帮助文档

软件安装

doxygen安装

  1. doxygen官网下载

  1. 安装,安装就很简单,一路next就完事了

  2. 安装完发现并没有生成桌面快捷方式,但是可以在windos的start或者安装目录找到,来一波添加桌面快捷方式

HTML Help (CHM) Help Compiler 安装

  1. HHC是用来生成CHM文件的,所以也会用到

    官网下载

下载doxygen中文手册

我从网上找到了这个doxygen的中文手册,给放在我的gitee上了,对于我这个英文不是很好的人来说,这个资料算是格外的珍贵了,也给大家分享一下

doxygen GUI frontend的使用

下面我都是使用这个GUI的程序来进行的

需要注意的地方

Expert->Input

注意,需要吧用到的资源的所有文件夹都包含进去,不然生成CHM可能会缺失

其他的就参见gitee上的工程文件吧

代码添加注释(VSCode korofileheader插件)

"fileheader.customMade":{
"file":"",
"Author": "chenjk",
"Date": "Do not edit",
"LastEditTime": "Do not edit",
"FilePath": "Do not edit",
"Description": "",
},
"fileheader.cursorMode": {
"brief":"",
"param":"",
"return":"",
},
"fileheader.configObj": {
"createHeader": true, //默认打开
"colon":" ",
"annotationStr": {
"head": "/**", // 自定义注释头部
"middle": " * @", // 自定义注释中间部分(注意空格,这也是最终生成注释的一部分)
"end": " */", // 自定义注释尾部
"use": false // 是否使用自定义注释符号
}
}

安装完之后,使用CTRL+ALT+I可以向代码中添加文件头部信息,使用CTRL+ALT+T可以添加函数注释格式信息,但因为我电脑的CTRL+ALT+T快捷键冲突了,我只能改建成CTRL+ALT+U,改键方法如下

注释

doxygen会识别如下如下格式的内容为用户需要doxygen进行抽取的

/**
*
*/

其中第一行的第二个*即提示doxygen此处有需要抽取的注释,否则doxygen并不会进行检查

@或者\符号是命令的提示符

比如命令brief为描述,在其前面添加@doxygen就会识别到这个命令,同理param也需要在前面加上@符号

常见的注释格式为:

建议在其中这个注释可以放在.c文件也可以放在.h文件,建议是如果存在.c文件,那么放在.c中,否则放在.h文件中。

另外如果两个都有,建议.h放简单的描述和输入输出的参数说明,若有更复杂的Note、Waring、details等,放在.c文件中

特殊命令

addtogroup

是将API分门别类的好工具,具体的效果就是会在生成的chm或HTML中增加一个模块页面增加这个组,这个组中会列举组中API的函数、枚举、定义等内容,所以如果需要代码API需要按模块来分类,并且可以配合brief来对模块进行说明,这是个利器

mainpage命令

我们可以使用md文件来制作首页,其方法就是在一级标题后面添加 {#mainpage},并且把这个文件添加到input中去

Note:

​ 1. 但注意这个一定要是在md文件的最开头,并且前面没有东西

doxygen上手的更多相关文章

  1. doxygen的简单使用(快速上手)

    在网上找了很久一个简单的doxygen教程,这个是最简单的,让你看完之后马上就能写doxygen格式的代码 doxygen是一种从源代码生成文档的工具,支持多种语言.当然,源代码中需按一定的格式写注释 ...

  2. Windows下使用doxygen阅读和分析C/C++代码

    Windows下使用doxygen阅读和分析C/C++代码 转自:http://blog.sina.com.cn/s/blog_63d902570100gwk6.html 虽然使用各种IDE或者Sou ...

  3. Doxygen给C程序生成注释文档

    近段时间,一直在学习华为C语言编程规范(2011版),在“注释”这一章中发现了一种“Doxygen”的注释转文档工具,查看诸多相关资料,并进行编程实践,终于可以利用Doxygen给C程序生成注释文档. ...

  4. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  5. Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映

    前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...

  6. ECharts数据图表系统? 5分钟上手!

    目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...

  7. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  8. Masonry介绍与使用实践:快速上手Autolayout

    1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 w ...

  9. 在QtCreator中使用doxygen

    接触Doxygen后,认识到其强大之处,一口气将之前的烂代码重构了一遍,所有的文件头,函数注释等等都是手动添加注释.在keil中可以看到其对JavaDoc风格的注释有高亮,非常好看.但是keil这个I ...

随机推荐

  1. Git 上传本地项目到远程仓库 (工具篇)

    前言:前面一开始写了一篇通过命令来操作本地项目上传远程仓库的文章,后来发现此方式没有那么灵活.故跟开发同事请教了下,知道了通过工具来操作更方便.所以写了这篇文章来分享&记录. 前提条件:本地安 ...

  2. jQuery的事件绑定与触发 - 学习笔记

    jQuery的事件绑定与触发 事件绑定 自动触发事件 常用的鼠标事件 事件冒泡和默认行为 事件冒泡 默认行为 获得当前鼠标的位置和按键 jQuery的事件绑定与触发 事件绑定 基本绑定 $(eleme ...

  3. 单元测试中使用Spring的ReflectionTestUtils更方便

    1 简介 ReflectionUtils是Spring中一个常用的类,属于spring-core包:ReflectionTestUtils则属于spring-test包.两者功能有重叠的地方,而Ref ...

  4. python学习之if条件句的使用

    if循环 if 条件: 代码块 运行 if else的用法 if elseif else用法 if 条件1: elif 条件2: elif条件3: else:

  5. Android自定义顶部栏及侧滑菜单和fragment+viewpag滑动切换的实现

    嘿嘿嘿,关于android滑动的操作,是不是经常都会用到呢. 我肯定也要学习一下啦. https://blog.csdn.net/u013184970/article/details/82882107 ...

  6. js中刷新页面的方式总结

    1.window.onload / document.onload 2.history.go(num): (1)num为参数,num为正表示前进几个页面,类似于history.forward(): ( ...

  7. 5G新基建到来,图扑推出智慧路灯三维可视化方案

    前言 作为智慧城市的重要组成部分,智慧灯杆管理系统采用信息化.数字化手段,把路灯及城市景观照明等各种不同对象的监控和数据采集及处理融于一体, 为城市管理者进行城市管理.进行科学决策提供了强有力的手段. ...

  8. Java Stream 流如何进行合并操作

    1. 前言 Java Stream Api 提供了很多有用的 Api 让我们很方便将集合或者多个同类型的元素转换为流进行操作.今天我们来看看如何合并 Stream 流. 2. Stream 流的合并 ...

  9. [hdu5256]LIS模型

    题目:有一个数列A1,A2...An,修改数量最少的元素,使得这个数列严格递增.无论是修改前还是修改后,每个元素都必须是整数. 思路: 修改数量最少的元素使得这个数列严格递增,等价于让数量最多的元素不 ...

  10. [csu/coj 1619] 递归

    题意:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1619 思路:由于式子具有递归的性质,考虑递归解,中间结果会超64位int,需用大数.另外自己 ...