ZHCABH6A January 2022 – October 2022 MSP430FR2533
A. 液位高度计算
要在 LCD 上显示液位高度,应用必须测量不同液位高度下的电容值。如Equation6 所示,测量 LTA 和 COUNT,然后计算 .
通过测量多组数据,图 3-6 显示了液位高度与电容值变化之间的关系。根据拟合结果,液位高度与 之间的关系为:Y = 341.5X − 34.249。
B. 流程图
该软件设计主要包括三个部分:电容检测、LCD 显示液位高度和 I2C 通信。图 3-7 显示了总体代码设计流程图。
程序启动时,MCU 对 IO 端口、时钟等进行初始化,然后 LCD 显示“Start”,表示可以进行测量。在短暂的延迟之后,通过 CAPT_appStart() 开始测量,并在 APP_init() 中调用测量函数。APP_init() 函数包括持续扫描每个通道,根据扫描的数据实时计算高度,并通过 LCD 显示。
C. 校准和通信
使用提供的 UART 和 I2C 库函数进行开发时,建议与主机 MCU 通信。首先,GUI 生成的默认代码将完成 BSP_configureMCU() 函数中 UART (eUSCI_A0) 和 I2C (eUSCI_B0) 的 IO 配置和时钟配置。因此,只需配置通信模块并编写通信协议。此设计使用 I2C 与主机通信,主机可以发送命令以执行校准并从从器件接收数据。具体操作步骤如下:
主器件 | 主机 |
---|---|
pBuffer[0]-[3] | 无关 |
pBuffer[4] = 01 | 需要校准 |
pBuffer[5] = 01 | 将高度数据保存到 pBuffer[6] |
pBuffer[7] = 01 | 将代码版本保存到 pBuffer[8] |
pBuffer[9] = 01 | 引导加载程序,软件更新 |
当 MCU 接收到主机发送的数据时,如果数据的第四位为 0x01,则 MCU 进行校准。如果数据的第五位为 0x01,则高度数据将存储在 pBuffer[6] 中,主机可以读取它。如果第 7 位为 0x01,主机可以从 pBuffer[8] 中读取版本号。如果第 9 位为 0x01,即引导加载程序,则可以更新软件。