软件总体架构

 
初始化PMC
初始化总线
PIO初始化
LCD初始化
ASCII初始化
AD初始化
变量初始化
读取ID,频率
串口初始化
显示开机画面
设置看门狗
准备接收数据
进入接收-发送循环
 
定时器中断0    采样赋值
定时器中断1    更新LCD显示
定时器中断2    案件扫描
 
问题1:原LCD程序在开机时特意配置了时钟,无法判断是为了满足LCD的要求还是原来PWM的要求。(暂时认为是为PWM设置的)
问题2:宏定义DATA_BUS    (0xff<<23|6),为什么要|6?(暂忽略)
问题3:在串口初始化中涉及到PA2,PA4——PA8口,尽管实际中只使用PA5,PA6,但是其他口已经被配置为其他用途,是否会引入未知的影响。
问题4:时间的现实问题,最开始没有收到上位机时间信息时如何显示?(一种是显示00:00,另一种是不显示,暂定为后者)
问题5:三个中断优先级的设置?(根据实际情况设定)
 
以下是针对上述C++代码的软件设计文档: 1. 需求分析: 该程序需要实现一个简单的计算器功能,能够进行加减乘除四则运算,并能够处理简单的括号运算。用户可以通过输入表达式,得到计算结果。 2. 软件总体架构框图: 该程序的软件总体架构如下图所示: ``` +----------------------------------------+ | 计算器程序 | +----------------------------------------+ | 用户界面 | +----------------------------------------+ | 表达式解析及计算模块 | +----------------------------------------+ ``` 3. 模块详细设计和函数说明: - 用户界面模块: 该模块负责处理用户界面的显示和用户输入的处理。主要包含以下函数: - `void showMenu()`:显示计算器程序的主菜单。 - `void getUserInput(string& input)`:获取用户输入的表达式。 - `void showResult(double result)`:显示计算结果。 - 表达式解析及计算模块: 该模块负责解析用户输入的表达式,并进行计算。主要包含以下函数: - `bool isOperator(char c)`:判断字符是否为运算符。 - `bool isNumber(char c)`:判断字符是否为数字。 - `double calculate(double a, char op, double b)`:进行单个运算符的计算。 - `double calculateExpression(string expr)`:解析并计算表达式。 4. 注意事项: - 在进行表达式解析时,需要考虑到运算符的优先级和括号的优先级。 - 在进行除法运算时,需要考虑到除数不能为零的情况。 以上是针对上述C++代码的软件设计文档,其中包括了分析需求、设计软件总体架构框图、各模块的详细设计和函数说明等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值