# Conductometer **Repository Path**: daiver/Conductometer ## Basic Information - **Project Name**: Conductometer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-08 - **Last Updated**: 2024-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Conductometer # 中南大学物理实验中心智能热学试验仪 ## 说明 ### 此程序适用于中南大学物理实验中心热学试验仪 ### 源文件说明 | 文件名 | 说明 | 备注 | | ----------- | ----------------------------------- | ------------------------------------------------- | | main.c | 主程序所在文件 | 外设初始化,主循环 | | qpylcd.c | 液晶驱动 | | | delay.c | 延时函数 | | | asciifont.c | 液晶驱动支持文件,提供ASCII字符字库 | | | ds18b20.c | 温度传感器驱动 | 提供三条ds18b20总线 | | usart.c | 串口驱动 | | | tim.c | 定时器驱动 | 定时器2,3,4,其中定时器4用作PWM | | esp8266.c | ESP8266WiFi模块驱动 | 实现WiFi通信,通信逻辑 | | font.c | 程序所用到的汉字字模及LOGO图片 | 汉字未实现统一字库 | | support.c | 导热仪支持驱动 | 实现仪器的逻辑处理,显示UI | | key.c | 按键驱动 | 添加KEYANDEC11_Scan函数,实现同时扫描按键和编码器 | | ec11.c | 编码器驱动 | | | pwm.c | PWM驱动 | 通过PWM调节加热功率 | | eeprom.c | 模拟EEPROM驱动 | 使用STM32ROM最后1K作为EEPROM | | beep.c | 蜂鸣器驱动 | | | iic.c | 模拟I2C驱动 | 使用普通IO口模拟I2C | | at24cxx.c | AT24CXX系列EEPROM驱动 | | | spi.c | 硬件SPI配置 | 使用了SPI2,未使用SPI中断 | | w25x16.c | W25X16 Flash驱动 | 用于保存数据 | ### 部分可自定义选项位于相关头文件宏定义区域,可自行修改,说明如下: | 宏 | 功能 | 位置 | | ------------------------ | -------------------------- | --------- | | PRINTTOUSART | 实现printf函数打印到串口1 | usart.h | | PRINTTOLCD | 实现printf函数打印到液晶屏 | qpylcd.h | | ALLOWBACK | 实验中允许返回上一步骤 | support.h | | PID_CONTROL | PID温度控制 | support.h | | WIFI_SSID | 用于连接的WiFi ssid | esp8266.h | | WIFI_PASSWORD | WiFi密码 | esp8266.h | | TCP_PORT | TCP服务器监听端口 | esp8266.h | | KEY_DOUBLE_CLICK | 按键双击 | key.h | | KEY_SHORT_PRESS_MAX_TIME | 按键短按最长时间 | key.h | | KEY_LONG_PRESS_MAX_TIME | 按键长按最长时间 | key.h | | KEY_DOUBLE_CLICK_DELAY | 按键双击检测延时 | key.h | ## 软件更新日志: * 说明:Alpha为未测试版本,Beta为通过测试版本,无后缀为正式版本 #### 2018/2/23 0.1-Beta - 初版完整软件,各项功能基本实现 #### 2018/2/27 0.2-Beta - 修复编码器概率性不可控 - 增加“确认进入下一步”对话框 - 增加“实验数据”界面,方便实验完成的数据记录 - 增加“实验完成”对话框,提示实验已完成 #### 2018/3/7 0.2.1-Alpha - 修复LCD驱动中QPYLCD_DisplayInt函数显示负数错误问题 - 修改ESP8266驱动,ssid password与port修改为宏定义方式 - 下一步计划加入PID算法控制加热,并完善ESP8266驱动,实现其TCP与UDP通信,加入广播机制,放弃原来死板的TCP连接方式 #### 2018/3/8 0.2.2-Alpha - 新增PID算法控制温度,通过宏PID_CONTROL开启,位于support.h文件中,原来的加热控制算法保留 - 由于没有硬件进行测试,PID算法参数尚未调节,所以PID算法可能会不工作,注释掉PID_CONTROL宏可使用原来的加热算法 - 由于加入PID,部分代码做了修改,故原来的算法也不一定工作... - 好运 #### 2018/3/9 0.2.2-Alpha - 优化温控代码 #### 2018/3/10 0.2.3-Alpha - 优化ESP8266驱动 - 加入开机对ESP8266是否连接成功的判断,若未连接会进入离线模式,同时后台会持续尝试连接 #### 2018/3/14 0.2.4-Alpha - 优化温度传感器驱动,增加此驱动的可移植性 #### 2018/3/16 0.3-Beta - 测试通过0.2.4-Alpha版本 - 修复一处偶发性的温度显示错误 - PID控制算法,加入防止温度过高的逻辑 #### 2018/3/19 0.3.1-Alpha - 修复处于加热状态,返回上一步骤加热不停止的问题 - 修复加热温度被写死的问题 - 优化散热盘升温阶段,加热盘温度控制的更低 - 尝试修复加热结束,加热电压输出不会停止的问题,需要测试 - 新增I2C和AT24CXX系列EEPROM驱动,不过暂时无法使用 #### 2018/3/26 0.3.2-Alpha - 重构按键驱动,修改按键长按短按的判断逻辑,减少短按延时,优化按键体验 #### 2018/3/27 0.3.3-Alpha - 新增按键双击驱动,可通过宏KEY_DOUBLE_CLICK开启,默认关闭 - 需要注意,若开启按键双击,则按键单击会产生一个小的延时 #### 2018/3/28 0.4-Beta - 修复加热不停止的问题(这次是真的修复了) - 修复第一次读取温度,显示85度的问题 - 优化按键双击的判断 - 新增几个按键相关的宏,用于控制按键的灵敏度 #### 2018/4/4 0.4.1-Beta - 开机进入设置,移除短按确认键进入设置的判断,基本不会触发 - 移除一处不必要的显示刷新操作 - 更新版本号(主要目的) #### 2018/4/6 0.5-Beta - 记录数据步骤中,新增左键删除一条数据记录的操作 - I2C和AT24CXX系列EEPROM驱动确定可用,PCB虚焊了... - 新增实验数据保存和读取,可以掉电保存一次数据并随时查看 - 实验完成之后,数据会自动保存至AT24C02(如果该芯片存在) - 按住计时键不松手,并开机,会自动读取上一次保存的实验数据并显示 - 新增保存/读取数据对话框,完成保存/读取操作后会自动消失 #### 2018/4/10 0.6-Beta - 重构仪器设置部分代码,增加设置条目结构体,可自由定义设置条目,灵活增添设置项 - 设置界面加入编译时间显示 - 优化LCD显示字符串的函数,加入对换行符的换行处理 #### 2018/4/11 0.6.1-Beta - 修复建立稳恒态和散热盘升温界面的温度显示偶发性错误 - LCD驱动关键部分使用写寄存器配置,加快LCD显示速度 - 暂时屏蔽PID算法 - 实验步骤中,完成一个步骤进入下一个步骤的长按确认键操作统一改为短按(长按保留),改善体验 #### 2018/4/12 0.6.2-Beta - 新增设置界面的滚动动作,可以添加不限数量的设置项了 #### 2018/4/21 0.6.3-Alpha - 新增SPI和W25X16 SPI Flash驱动 #### 2018/4/28 0.6.4-Beta - 部分代码结构优化 - 修复PID算法温度无法控制的问题 #### 2018/4/29 0.7-Beta - 加入位置式PID算法,具体选用还需要看调试结果 - 移除PID参数的宏定义,采用变量定义,便于PID参数的动态调节 - 线性温度算法加入对目标温度修改的修正 - SPI驱动已知bug修复 - PID算法调试完成,重新启用PID算法,屏蔽线性算法 - 建议采用位置式PID算法(PID_CONTROL = 1) - bug:SPI时钟线没有输出,导致SPI Flash驱动失败 #### 2018/4/30 0.7.1-Beta - PWM加入对非整数占空比的支持,占空比调节更加精密 - SPI Flash驱动加入对芯片忙状态的判断 - 修复SPI驱动 - 修复W25X16 SPI Flash驱动 - 新增SPI Flash JEDEC ID的读取,可用于判断芯片是否工作 #### 2018/5/1 0.7.2-Beta - 修复仪器无法获取服务器IP,导致无法连接服务器的问题 - 修复上位机在仪器尚未输入学号的情况下,手动签到导致错误的问题 - PID参数调整 - 修复建立稳恒态界面,计时到10分钟后,按下计时清零时间,时间显示错误的问题 - 修改W25X16 SPI Flash读操作为快速读方式,以适应高速SPI #### 2018/5/2 0.8-Beta - 新增保存实验数据至SPI Flash - 新增从SPI Flash读取实验数据 - 新增SPI Flash按块擦除操作 - 新增SPI Flash整片擦除操作 - 新增SPI Flash检测是否可用函数 - 修改实验数据保存至W25X16 SPI Flash - 新增数据查询,按住计时键不放并开机会进入数据查询界面,可根据学号查找保存在Flash中的实验数据 - 数据操作对话框优化 #### 2018/5/3 0.8.1-Beta - 修复数据查询,在显示的是最后一条查询结果的情况下,按下确认键返回数据查询界面,会显示“没有更多数据”的对话框的问题 - 新增数据查询界面,长按左键重启仪器 - 新增数据操作对话框的等待可被任意按键终止 #### 2018/5/16 0.9-Beta - 新增可执行设置项,可添加函数至设置列表,短按确认键执行 - 新增稳恒态加热盘温度的保存,上位机以同步更改 - 代码优化 - 正式版预告 #### 2018/5/17 1.0 - 第一个正式版固件 - 修复设置界面,执行可执行设置项之后出现设置项错位的问题 - 修复Flash中没有数据时,查询数据时死循环的问题 - 新增数据显示加热稳恒态加热盘温度的显示,界面调整 - 修改数据擦除为只擦除数据控制块,减少Flash擦除频率