业务流程图 —— 讲清“谁做了什么事”

业务流程图核心要点解析

1. 核心思想(老师先问你)

        想象一下,你要向一个完全不懂的人解释“网上点外卖”整个过程。你会怎么说?你可能会说:“用户先打开APP,然后选餐厅、选美食,接着下单付款,最后等骑手送餐。”
        这个“先...然后...接着...”的过程,就是业务流程。业务流程图就是把这个过程画出来,它关注的是 “流程” 和 “参与的角色”
       

2. 核心要素(我们的“积木块”)

  • 角色: 谁参与了这个过程?例如:顾客、商家、骑手、系统。

    • 画法: 小人像 👤

  • 任务/操作: 他们具体做了什么事?例如:提交订单、制作餐品、确认送达。

    • 画法: 圆角矩形 ▢

  • 流程线: 事情做的先后顺序。

    • 画法: 带箭头的线 →

  • 判断: 过程中是否需要做决定?例如:余额是否充足?

    • 画法: 菱形 ◇

  • 开始与结束: 流程从哪里开始,到哪里结束。

    • 画法: 椭圆形 ╭╮

3. 动手实践:绘制“用户点外卖”流程图

我们来画一个简化的版本,跟着步骤一起画:

  1. 确定角色: 顾客、系统、商家、骑手。

  2. 确定起点和终点:

    • 起点: 顾客打开APP

    • 终点: 顾客收到餐品,流程结束

  3. 填充中间步骤:

    • 顾客:浏览商家 -> 选择商品 -> 提交订单 -> 支付 -> 确认收货

    • 系统:校验库存 -> 生成订单 -> 分配骑手

    • 商家:接收订单 -> 制作餐品 -> 通知骑手取餐

    • 骑手:取餐 -> 配送 -> 送达

  4. 加入判断点:

    • 在“支付”后,加入判断“支付是否成功?”。

    • 成功,流向“系统生成订单”。

    • 失败,流向“提示支付失败”,流程结束。

  5. 连接所有元素: 用箭头把以上所有步骤按顺序连接起来。

(请看下方的流程图示例)

4.黄金法则

  • 一句口诀: 一图一事,角色明确,有始有终。

  • 常见误区: 不要把好几个不相关的流程塞进一张图里。

### 时钟外设在系统中的作用及其工作原理 时钟系统是嵌入式系统中不可或缺的一部分,它为系统的各个模块提供稳定的时钟信号,确保系统能够按照预定的节奏运行。时钟外设在系统中扮演着至关重要的角色,其主要作用包括: 1. **提供时钟信号**:每个外设都需要一定频率的时钟信号来驱动其工作。这些时钟信号由时钟系统提供,时钟系统可以编程控制工作模式,因此程序员可以为每个外设指定时钟来源、时钟分频系数,从而制定这个外设的工作时钟[^1]。 2. **时钟源选择**:系统时钟控制器为单片机的CPU和所有外设系统提供时钟源,系统时钟有多个时钟源可供选择,包括内部高精度24MHz的IRC、内部32KHz的IRC(误差较大)、外部晶体振荡器或外部时钟信号。用户可通过程序分别使能和关闭各个时钟源,以及内部提供时钟分频以达到降低功耗的目的[^3]。 3. **时钟分频与倍频**:为了满足不同外设的需求,时钟系统通常具备分频和倍频功能。例如,在STM32中,HSE接入8MHz的外部振荡信号,由PLLXTPRE进行选择进行1分频还是2分频。如果选择1分频,则8MHz的时钟信号来到PLLSRC控制选择的位置,配置PLLSRC,选择进入PLL锁相环的时钟信号源。假设来自HSE的信号选通,则8MHz的信号进入锁相环中,配置PLLMUL,可以选择倍频系数。假设倍频系数选为9,则PLL输出72MHz的时钟信号。SYSCLK前面的选择逻辑控制着SYSCLK时钟信号来自于HSE、HSI、PLLCLK中的哪一个,通过SW和CSS控制,选择PLLCLK后,系统可以获得72MHz的时钟频率[^2]。 4. **功耗管理**:为了减少功耗,STM32上的外设时钟初始状态默认为关闭。如果需要使用某个外设,则必须开启该外设的时钟。例如,要使用外设GPIOB,系统时钟SYSCLK需要通过预分频器AHB分频,再进入APB2总线进行再分频(GPIOB挂载在APB2总线上)。时钟信号的输入和外设时钟使能位接在一个与门上,当要使用外设时,需要将这个使能位置1,配置完成后,GPIOB方可正常工作。 ### 为什么没有时钟外设就无法正常工作 1. **时序控制**:数字电路中的所有操作都依赖于时钟信号来同步。没有时钟信号,电路无法确定何时进行数据采样、何时进行状态转换,导致系统无法正常工作。 2. **外设驱动**:每个外设都需要一定频率的时钟信号来驱动其内部逻辑。例如,定时器需要时钟信号来计数,ADC需要时钟信号来进行采样和转换。没有时钟信号,这些外设将无法执行其功能。 3. **数据传输**:在数据传输过程中,时钟信号用于确保发送端和接收端之间的同步。没有时钟信号,数据传输将变得不可靠,可能导致数据丢失或错误。 4. **功耗管理**:时钟信号的开启和关闭直接影响外设的功耗。在低功耗应用中,关闭不需要的外设时钟可以显著降低系统功耗。 ### 示例代码 以下是一个简单的示例代码,展示如何在STM32中配置系统时钟和外设时钟: ```c #include "stm32f10x.h" void SystemClock_Config(void) { // 使能HSE RCC->CR |= RCC_CR_HSEON; // 等待HSE稳定 while (!(RCC->CR & RCC_CR_HSERDY)); // 配置PLL RCC->CFGR |= RCC_CFGR_PLLSRC; // 选择HSE作为PLL输入 RCC->CFGR |= RCC_CFGR_PLLMULL9; // 倍频系数为9,输出72MHz // 使能PLL RCC->CR |= RCC_CR_PLLON; // 等待PLL稳定 while (!(RCC->CR & RCC_CR_PLLRDY)); // 选择PLL作为系统时钟源 RCC->CFGR |= RCC_CFGR_SW_PLL; // 等待切换完成 while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL); } void GPIOB_Clock_Enable(void) { // 使能GPIOB时钟 RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; } int main(void) { // 配置系统时钟 SystemClock_Config(); // 使能GPIOB时钟 GPIOB_Clock_Enable(); // 主循环 while (1) { // 应用程序代码 } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小风华~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值