plantUML学习与实战

背景

在日常工作或者生活中,使用交互图来描述想法,往往相对于文字来说,可读性更高,同时一定程度上可以提高沟通效率,但是苦于,不想对一堆控件拖拖拉拉,本人就是一个很讨厌画图,但是又不得不画图来节约沟通效率,降低沟通的人。
plantUML很好的满足了这种日常需求,可以通过代码的形式来画图

自主入门资料

一小时实践入门 PlantUML

这里推荐一个在线编辑工具
planttext
方便操作,不需要额外再下载软件

示例

@startuml
title 主任务执行流程图
start
:main;
:main_systask(systask_Obj);
:sysytaskInit;
:打开总中断Gsp_Hal_Rcc_Enable_irq();
:系统运行变量初始化;
:SP_T议栈初始化;
:SP_T对象回调函数初始化;
:向系统注册10ms定时器用于main_task使用;
if (APP_BMS)
:注册1ms定时器-用于bms中ccs和cst的快速发送;
else
endif
if (GSP_FMU_SUPPORT)
:falsh存储初始化smu_Obj.init();
else
endif
:系统运行环境初始化①;
:关闭总中断;
if(GSP_FMU_SUPPORT)
:SCU存储运行环境初始化(主要读取驱动板卡配置用于初始化外设);
endif
:硬件资源外设初始化;
if(GSP_FMU_SUPPORT)
:更新软件版本信息内容;
else if(FOR_SGCC)
:针对国网更新部分信息;
else
:记录程序启动日志(日志中会先记录启动-后记录配置异常信息);
:系统配置初始化;
endif
:喂狗Gsp_Hal_Sys_WatchDog();
if(GSP_FMU_SUPPORT)
:底层驱动管理单元DMU初始化(方式1);
else
:底层驱动管理单元DMU初始化(方式2);
endif
if(GSP_FMU_SUPPORT)
:设置波特率sysDevParaSetByCfg();
else
endif
:喂狗Gsp_Hal_Sys_WatchDog();
:imu层初始化imu_Obj.init();
:gsp自身任务初始化GspRun_Obj.init();
:APP数据初始化appFunc_Obj.init();
:打开总中断Gsp_Hal_Rcc_Enable_irq();
if(UPDATE_BOOT_ENABLE)
:UpdateBootloader()(条件选配);
else
endif
while(systaskMain主任务)
:HAL_GetTick();
:driver固定任务Gsp_Hal_Sys_Main();
if(systimer_10ms>0)
:计数清零;
:喂狗;
else if(支持工装模式并且置位)
:轮询工装任务;
else if(正常模式)
:dmu调度任务;
:imu数据映射;
:执行app主程序;
:母联自动测试条件执行;
else
endif
:SMU存储任务执行;
:gsp_run;
:时钟处理;
endwhile
  -[hidden]->
  detach
@enduml

plantUML学习与实战_第1张图片

可以将上述代码粘贴到推荐的在线planttext试试看效果。

你可能感兴趣的:(程序员提高工作效率的神级工具,物联网,学习)