# 流程图 ## 脉冲计数流程图 ```mermaid flowchart A[开始] --> B(根据脉冲段的要求设置对应的ARR) B -->|达到要求| C(进入中断) C -->D{是否有下一段脉冲} D --> |无下一段脉冲|E[结束] D --> |有下一段脉冲|F(设置ARR为下一段脉冲的脉冲数) F --> E[结束] ``` ```mermaid flowchart A[开始] --> |检测到清零指令|B(清零计数) B --> C[结束] ``` ## 脉冲加减速流程图 ```mermaid flowchart A[开始] --> B(计算加速度) B --> C(计算下一个脉冲的频率) C -->D(设置脉冲的频率) D --> E(开启脉冲) E --> F[结束] ``` ## 脉冲方向流程图 ```mermaid flowchart A[开始] --> B{变量是否改变} B --> |是| C(修改引脚电平) B --> |否| D[结束] C --> D ``` ## 模式选择流程图 ```mermaid flowchart A[开始] --> B{模式判断} B --> |相对模式| C(启用相对模式函数) B --> |绝对模式| D(启用绝对模式函数) C --> E[结束] D --> E[结束] ``` ## PLSR多段脉冲输出功能实现流程图 ```mermaid flowchart A[开始] --> B(根据频率设置对应的PSC和ARR) B --> C(根据当前运行的脉冲设置计数定时器的ARR) C -->|脉冲段结束| D{检查是否存在下一段} D -->|有下一段脉冲| E(进行脉冲替换和脉冲加减速) D -->|没有下一段脉冲|F(停止脉冲发送定时器) E --> G[结束] F --> G[结束] ``` ## 掉电保存流程图 ```mermaid flowchart A[开始] --> B(开始并使能Sram区域) B --> C(创建掉电保存任务) C --> D(每个一段时间保存对应的数据) D --> E[结束] ``` ```mermaid flowchart A[开始] --> B(从Sram区域读取保存的数据) B --> C(将读取到的数据进行解析并存入结构体) C --> D[结束] ``` ## 系统结构图 ```mermaid flowchart A[主控] --> B(脉冲计数) A[主控] --> C(脉冲的加减速) A[主控] --> D(脉冲的方向) A[主控] --> E(运动模式切换) A[主控] --> F(多段脉冲输出) A[主控] --> G(掉电保存) ``` ## 与上位机通信流程图 ```mermaid flowchart A[开始] -->B(收到数据) B --> C(解析并处理数据) C --> D(根据数据进行相关处理) D --> E[结束] ```