## AB机通信内容
```mermaid
graph LR;
B机:CAN0--电流-->A机:CAN0
B机:CAN0--电压-->A机:CAN0
A机:CAN0--语言-->B机:CAN0
B机:CAN0--语言-->A机:CAN0
A机--4G-->熊谷服务器
A机:CAN1-->A动力控制板-->A焊机主板-->A温度模块-->A角度模块-->A焊层模块
A机:CAN0-->A305机头
B机:CAN1-->B焊机主板
```
## 设备程序内容
- A机
```mermaid
graph LR;
CAN1-->冯希望:显示程序
CAN1-->CAN1收发程序-->赵成杰:AS4程序
CAN0-->自动焊:CAN0通信主站-->自动焊:305主程序
冯希望:显示程序-->消息中转服务
自动焊:CAN0通信主站-->消息中转服务
赵成杰:AS4程序-->消息中转服务
显示程序--电流/电压-->305主程序
显示程序--送丝速度-->305主程序
显示程序--错误代码-->305主程序
显示程序--语言-->305主程序
305主程序--焊接参数-->显示程序
305主程序--启动焊接-->显示程序
305主程序--停止焊接-->显示程序
305主程序-->扫码结果-->赵成杰:AS4
305主程序-->机头在线情况-->显示程序
305主程序--语言-->显示程序
```
- B机
```mermaid
graph LR;
CAN1 --> 冯希望:显示程序 --> 消息中转服务
CAN0 --> 自动焊:CAN0通信从站 --> 消息中转服务
```
# Markdown常用指令集 mermaid指令在GitHub不适用
```C
#include "oled.h"
#include "led.h"
//#include "font.h"
#include "pic.h"
#include "ShowInterface.h"
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
// MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH,ADDR_APP_OFFSET);
delay_init(72);
uart_init(72,9600);
TIM2_Int_Init(9,7199);
//CH454_Init();
CAN_Mode_Init(1,8,7,9,0);
// TIM3_Int_Init(10-1,8400-1);
EXTIX_Init();
SysTask_Create();
_SEND_GetReady();
LED_Init();
OLED_Init();
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
LCD_ShowPicture(40,90,240,46,gImage_black);
delay_ms(65535);
LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
Interface.page = PageMain;
while(1)
{
Timer1_IsrHandler();
}
}
```
**加粗**<br>
*斜体*<br>
>引用 <br>
`代码`<br>
[Internet](www.sb.com "this is a url")<br>
- 连接<br>
1. 列表<br>
- [ 任务列表]<br>
| this is header | is header | block |
| ------: | :------ | ------ |
| cell | cell |
| cell | cell |
<br>
## 流程图基本指令
### graph指定是一个图,第二个LR指定图的方向,所有的方向关键词为
```
TB - top bottom
BT - bottom top
RL - right left
LR - left right
TD - same as TB
```
* 之后的A,B,C等都是节点的标识(标识中不能使用空格)
* 节点默认只显示标识,但也可以通过如下方法控制其显示
```mermaid
graph TD;
A;
B(B);
C((C));
D>D];
E{E};
```
* 以下是一些常用例程
```mermaid
graph LR;
A[A] --> B[B];
C ==> D;
E --- F;
H -.- I;
J -.-> K;
L -- EXPLAIN --- M;
```
<br>
<br>
* 还有更多网上的例程如下
此处添加\<br>符号后,后面的指令识别不正确
```mermaid
graph LR;
A[A] --> B[B];
A1[A] --- B1[B];
A4[A] -.- B4[B];
A5[A] -.-> B5[B];
A7[A] ==> B7[B];
A2[A] -- 描述 --- B2[B];
A3[A] -- 描述 --> B3[B];
A6[A] -. 描述 .-> B6[B];
A8[A] == 描述 ==> B8[B];
```
https://blog.csdn.net/lrnanfayer/article/details/104613690/
* 文字编写等内容
换行需要使用 \<br/><br/>否则不对
强调符号在Tab键上方 使用后`就会变成这样的强调`
给一段文字加入超链接的格式是这样的 [ 要显示的文字 ](链接的地址 "www.zcjhandsome.com")。比如:
[帅气的zcj](www.sd.com悬停显示)
* *后面有个空格,添加圆点
* 添加Tab后分级
* 类似这种
*
*
*
>数据结构
>>树
>>>二叉树
>>>>平衡二叉树
>>>>>满二叉树
* 图片格式的链接功能
![](http://www.baidu.com/img/bdlogo.gif)
![baidu](http://baidu.com)
![baidu]:http://www.baidu.com/img/bdlogo.gif "百度Logo"
```C
print("hello world\n");
```
```JAVA
print("hello world\n");
```
* this is a markdown test
>from handsome zcj
***
***
***
***
***
***
***
<br>
```this single line code to print words```
表头 | 表头 | 表头
| :-----: | :-----: | :------:|
单元格内容 | 单元格内容 | 单元格内容
| ----- | ----- | ------ |
单元格内容 | 单元格内容 | 单元格内容
*这是倾斜测试*<br>
**这是加粗测试**
转义需要在前面加上\ 比如\<br>
~~请删掉我吧~~
一、标题写法:
第一种方法:
1、在文本下面加上 等于号 = ,那么上方的文本就变成了大标题。等于号的个数无限制,但一定要大于0个哦。。
2、在文本下面加上 下划线 - ,那么上方的文本就变成了中标题,同样的 下划线个数无限制。
3、要想输入=号,上面有文本而不让其转化为大标题,则需要在两者之间加一个空行。
另一种方法:(推荐这种方法;注意⚠️中间需要有一个空格)
关于标题还有等级表示法,分为六个等级,显示的文本大小依次减小。不同等级之间是以井号 # 的个数来标识的。一级标题有一个 #,二级标题有两个# ,以此类推。
例如:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
二、编辑基本语法
1、字体格式强调
我们可以使用下面的方式给我们的文本添加强调的效果
*强调* (示例:斜体)
_强调_ (示例:斜体)
**加重强调** (示例:粗体)
__加重强调__ (示例:粗体)
***特别强调*** (示例:粗斜体)
___特别强调___ (示例:粗斜体)
2、代码
`<hello world>`
3、代码块高亮
```
@Override
protected void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
```
4、表格 (建议在表格前空一行,否则可能影响表格无法显示)
表头 | 表头 | 表头
---- | ----- | ------
单元格内容 | 单元格内容 | 单元格内容
单元格内容 | 单元格内容 | 单元格内容
5、其他引用
* 图片
![图片名称](https://www.baidu.com/img/bd_logo1.png)
* 链接
[链接名称](https://www.baidu.com/)
6、列表
1. 项目1
2. 项目2
3. 项目3
* 项目1 (一个*号会显示为一个黑点,注意⚠️有空格,否则直接显示为*项目1)
* 项目2
7、换行(建议直接在前一行后面补两个空格)
直接回车不能换行,
可以在上一行文本后面补两个空格,
这样下一行的文本就换行了。
或者就是在两行文本直接加一个空行。
也能实现换行效果,不过这个行间距有点大。
8、引用
> 第一行引用文字
> 第二行引用文字