---------------------------------------------------------------------------- 2021-03-17 V1.48 对应PC软件版本 V1.4.5 1.系统设置参数增加一个进入boot的入口,升级APP固件 2.针对多路SWD烧录,新增一个延迟参数 MUL_DELAYUS_READ_ACK 3.EMMC磁盘文件更新 - 解决STM32F103C8T6多路烧录异常 - 解决UID加密示范文件的bug - 机台输出信号NG输出状态在某种情况下存在bug ---------------------------------------------------------------------------- 2021-01-24 V1.47 对应PC软件版本 V1.4.4 1. 优化插入自动烧录功能。识别到IDCODE后延迟一段时间后再进行烧录。 解决上电较快但是硬件复位比较慢的板子自动烧录失败的问题。 延迟时间通过PC配置,参数名称:重新上电后的延迟(ms) 2. 解决灵动MM32L07X芯片多路烧录时失败的问题。 增加一个配置参数,在读内存指令之间增加几十us级别的延迟(50us)。 迟时间通过PC配置,参数名称:读内存指令间延迟(us) 3. EMMC磁盘文件更新: MM32L07x_128.lua --新增缺省参数 MUL_DELAYUS_READ_DATA = 50 ---------------------------------------------------------------------------- 2021-01-08 V1.46 对应PC软件版本 V1.4.3 1. 部分界面文字颜色加深 2. DAP固件升级到V1.05, 解决反复进入DAP,偶尔死机问题 3. bsp_cpu_adc.c 取消DMA中断, ADC缓冲区内存区域设置为not cashe. ---------------------------------------------------------------------------- 2020-12-26 V1.45 对应PC软件版本 V1.4.2 1. 增加PC机截屏功能(用于编写说明书) 2. 增加PC机模拟按键功能 3. 虚拟串口界面返回时退到扩展菜单 4. 脱机烧录界面显示数据文件的累加校验和 5. 增加恢复基本参数缺省值(不含校准参数)的功能(PC控制) 6. status_system_set.c中几个装态拆分到单独的文件status_usb_emmc.c, status_usb_uart.c, status_esp32.c 7. emmc磁盘文件更新prog_lib.lua文件,增加通道参数异常时报错 ---------------------------------------------------------------------------- 2020-12-24 V1.44 对应PC软件版本 V1.4.1 1. 传送脱机烧录的文件增加MD5完整性校验,并解决文件写入不全的BUG 2. USB虚拟串口功能单独做到扩展功能菜单中,其他状态均为PC USB通信模式 3. 取消上电启动lua时蜂鸣一声. 4. 上位机可以无需下载lua文件,直接执行临时窗口的lua程序 5. SPI-Flash烧录部分代码,解决几个缓冲区size偏小的bug 6. Modbus解码异常时禁止发送应答:MODS_SendAckErr(ERR_PACKAGE); 7. 新增文件:nvic_prio_cfg.h 全局统一配置每个中断的优先级 8. 升级STM32H7的HAL库 9. LwIP由2.0.3 升级到2.1.2 10.USB上电延迟2秒后再初始化,解决win7下USB使用异常 11.00界面增加USB,以太网联机状态指示。g_tVar.LinkState 变量表示联机状态 ---------------------------------------------------------------------------- 2020-12-17 V1.43 对应PC软件版本 V1.4.0 1.脱机烧录增加苏州国芯的2个M4芯片. 2.脱机烧录增加SPI Flash型号:MXIC的MX25L256, MX25L512和镁光25QL128、25QL256、25QL512等几个大容量芯片 3.解决脱机烧录中的几个BUG - 解决SST25VFXXX系列串行FLASH不能正确识别的问题。这个片子读ID和编程的方法与其他厂家差别较大 - 解决大容量芯片(大于16MB)烧录异常的问题(需要4字节地址访问) - ARM芯片烧录,编程完毕后执行FLM中的uninit()、target_flash_init(_FlashAddr, 0, FLM_INIT_VERIFY) 后再执行读回校验 - 解决FLM文件不规范导致的器件信号区信号解码错误(目前为止,只遇到过一个这样的FLM) - FLM有verify校验函数的, page_size按照FLM中来 - 查空前, 先执行FLM中的init(verify), 再装载和执行check_blank函数。实测有些FLM文件不行,放弃改动. - 单路模式机台信号,D7无法触发烧录,原因: (1)void status_ProgWork(void) 单路和多路SWD GPIO初始代码反了,导致D7配置为输出 (2)从00界面进入脱机界面,未启动ADC多通道扫描,导致lua脚本判断TVCC过低,不执行触发信号检测 4. PC机传送文件到H7-TOOL,解决小文件(比如ini文件)不会写入的bug 5. PC机传送文件,增加USB接口支持. 6. 调整USB中断和EMMC中断优先级,避免死机问题 7. USB串口中断中处理modbus指令,遇到写SD卡操作,会阻塞死机,已解决 8. 通信协议中新增加一个指令,PC可以控制H7-TOOL进入U盘模式、DAP模式 9. lua_DrawLine(), 解决颜色形参取值bug ---------------------------------------------------------------------------- 2020-12-09 V1.42 1.DAP固件升级到V1.04版本 -增加离线版RTT Viewer功能(无需PC机) -增加离线串口监视功能(无需PC机) 2.APP固件修正bsp_InitHardTimer()函数的bug(运行时间us数错误) 3.00联机界面去掉端口号显示 ---------------------------------------------------------------------------- 2020-12-06 V1.41b 1.DAP固件升级到V1.03版本,解决低电流板子调试异常问题 ---------------------------------------------------------------------------- 2020-12-04 V1.41 1.lua接口增加LCD显示函数,可以构建图形元素. 新增文件 lua_if_disp.c 2.DAP固件升级到V1.02版本,解决复位方面的小BUG,增加NRST电平指示功能. 3.bsp_InitTVCC() 内部取消TVCC_OFF的语句. 避免从DAP固件跳入后TVCC短暂关闭 ---------------------------------------------------------------------------- 2020-11-29 V1.40 【重大更新】 新增功能: 1.增加SPI Flash脱机烧录功能(需要升级PC软件,更新EMMC磁盘文件) 2.增加CMSIS-DAP仿真器功能。新增2个参数控制TVCC电压和蜂鸣器使能 3.增加DS18B20温度传感器驱动接口,D0-D7可外接8个传感器. - 新增lua接口函数 ok,temp = read("DS18B20", 2) --读D2口外接的传感器数据 - 数据监视器菜单下新增DS18B20温度表(显示8路温度值) BUG: 1.解决串口监视器BUG,ASCII模式如果收到0x00, 则不显示后面的数据。需要将不可见字符转换空格 2.解决在非lua小程序界面执行lua(PC机下载)无法长按C退出的问题 其他优化: 1.按键驱动底层忽略从其他状态跳转过来时,第一个长按键和按键弹起事件 2.上电不显示logo界面(以前有2秒延迟) 3.lwip初始化代码拆分到 lwip_pro() 中执行,加快界面启动速度 ---------------------------------------------------------------------------- 2020-10-19 V1.35 1.解决CX32芯片机台信号异常(1拖2模式解除SWD保护时,机台GPIO输出解锁脉冲) 2.增加lua i2c总线和spi总线接口函数,pc软件支持I2C,SPI总线控制 ---------------------------------------------------------------------------- 2020-10-19 V1.34a 1.解决旧版升级到新固件后,串口监视界面死机问题。原因是缺省参数不正确。 ---------------------------------------------------------------------------- 2020-10-19 V1.34 1. 修改net_udp.c中lua_udp_SendBuf()函数,遇到0x0A就立即发送,解决PC软件显示log不全问题 2. V1.33 emmc磁盘文件有误,machine_if.lua和prog_lib.lun需要更新 3. 多路模式烧录,最后发复位指令时需要忽略错误标志 4. i2c操作的函数lua接口api汇总到一个函数i2c_bus(), 第1个形参用字符串表示操作指令 ---------------------------------------------------------------------------- 2020-10-18 V1.33 1. 增加新唐N76E003芯片脱机烧录 2. 增加恒烁CX32L003系列脱机烧录 3. 增加烧录机台信号接口 - 增加lua文件: machine_if.lua 实现机台接口 - 单路模式实现机台信号(无需转接板) - 在1拖4转接板上实现1拖2模式下的机台信号 - 目前1拖4模式下GPIO不够用,不能实现机台接口,后期将开发带扩展IO的转接板来实现 - 出错终止策略可通过lua设置, - 终止时NG(No Good)策略可通过lua设置 4. 多路烧录时,某一个芯片出错可选择终止或者继续烧录, 烧录提示音区别 - 全部成功: 短音1声 - 部分成功: 长音1声,LCD会显示出错通道 - 全部失败: 滴滴滴急促3声 5. 统一参数设置页面的操作方法 - 扩展功能-系统设置-参数设置 - 扩展功能-脱机烧录器-烧录设置-烧录参数 - 扩展功能-数据监视器-串口(TII/485/232)-设置串口参数 5. 可在H7-TOOL上手动修改IP地址 BUG修复: 1. 修改休眠后按键唤醒功能,没有忽略首次唤醒键. ---------------------------------------------------------------------------- 2020-09-24 V1.32 1. 增加串口监视功能 - 联机模式界面,长按S进入进入扩展功能界面,选择数据监视器 - 支持2路串口数据显示,第1路: 232RX,485,TTTLRX 第2路:D1 URX - 支持HEX,ASCII格式选择,字体12点阵和16点阵 - 支持加时间戳功能,精确显示到us (双路时误差30us) 2. 优化emmc驱动 - 由1线模式修改为了8线 - MSC_MEDIA_PACKET 由512改为16*1024 - 4线的读速度10.5MB/s, 8线的读速度15.2MB/s - 8线模式,写速度 6-9MB/s 3. 脱机烧录器 (需要配套PC软件升级V0.9) - 新增支持雅特力AT32。 AT32F403的FLM文件中page size字段不正确超过了OB Size,导致写OB失败。 程序进行自动修正,page size 必须小于等于device size. - 重新加入复位模式选择参数。上个版本做的自动模式在无RST条件下成功率不高。PC软件上选择复位模式 -- 自动模式临时按软件模式操作,0自动模式 1软件模式 2硬件模式 - 烧录完毕后,在硬件复位期间同时发送软件复位指令. static int h7_reset(lua_State* L) - PC软件显示的烧录算法列表可以通过lua文件设置 4. 显示驱动修正 void ST7789_DrawScreen(void) 等待DMA传输完毕的语句放到DMA传输之后,死等。 之前的固件是先等待在DMA传输,容易导致视觉闪裂现象 5. 串口驱动优化 - UART_IRQ(). 增加奇偶校验判断,但是没起作用,无论是无校验、奇校验、偶校验都可以接收数据 if ((isrflags & USART_ISR_RXNE_RXFNE) != 0 && (isrflags & USART_ISR_PE) == 0U) - 串口中断添加 IdleLine回调函数,字符间超时中断。 用于串口监视功能 6. bsp_timer.c 增加精确到us的运行时间函数,uint64_t类型。用于串口监视器功能 - uint64_t bsp_GetRunTimeUs() 获得CPU运行时间uint64_t - uint64_t bsp_CheckRunTimeUs(x) 当前时间和之前的时间差值 7. LCD_DrawMemo(), 文本框显示函数修改为FiFo机制. 文本框缓冲调大到4KB. 8. 新增c文件:modify_param.c, 专门用于设置应用程序参数. BUG修复: 1.完善示波器普通触发功能,修正触发死机问题(不过很小几率还是会挂,并未完全解决) 2. lua_udp_SendBuf() 中 bsp_StartHardTimer(3, 5, udp_print_send), 单位是us,原计划是5ms的 (此处未改,改了PC界面居然打印显示不全) 3. 电压表功能,修改自动量程的判断条件 static void AutoVoltRange(void) 中,最后一档100mV量程判据由0.1V改为0.095V. ---------------------------------------------------------------------------- 2020-09-20 V1.31 1. 适配RT1052, 支持Hyper Flash 和 QSPI Flash. 2. 打印FLM文件时,显示第1个扇区的大小 3. lua文件中增加 RESET_DELAY 变量,缺省20ms,可通过lua修改。硬件复位后的延迟时间 4. lua文件中增加 RESET_MODE 变量,缺省0 表示自动. 1表示软件复位 5. FLM擦除扇区超时时间,没有按照FLM中的执行. RT1052擦除256KB扇区,超时3秒 6. 在线传送文件功能,提高效率。缓存16KB后再写入. ---------------------------------------------------------------------------- 2020-09-10 V1.30 【重大更新】 1. 完善脱机烧录功能 (需PC软件升级到V0.7以上,之前的烧录lua脚本需要用PC软件重新生成) - 增加支持GD32、新唐部分系列 - 完善滚码、UID加密功能 - 增加RS485数码管显示烧录状态。 - 烧录器LCD背光控制策略改进 - 连续烧录模式,如果背光关闭后再次插入目标板烧录时自动开启背光。 - 烧录开始时屏蔽背光控制,烧录结束后恢复背光控制,避免烧录时间大于1分钟中途关闭背光 - 校验逻辑增加分支: 如果FLM中有Verify则使用它(实测新唐的不行) - 函数增加形式参数 error_t target_flash_init(uint32_t flash_start, unsigned long clk, unsigned long fnc) - 完善 h7_Read_OptionBytes 函数,增加新唐片子的支持 - 脱机烧录复位选项取消。先尝试软件复位模式,失败后使用硬件模式 - void lua_do(char *buf) 允许嵌套重入。 烧录脚本需要用到该功能 - 64H下载lua程序的帧格式调整,增加2字节子功能码,用于连续文件下载 - 调整全部lua脚本,增加复位期间关闭看门狗的功能 2. 解决脱机烧录BUG - 多路烧录,如果扇区擦除超时失败,则不能提示是哪一路失败 - 查空函数判断不严谨,target_flash_check_blank(uint32_t addr, uint32_t size) - 0和1表示空和不空,没有通信失败的分支 - swd_flash_syscall_exec_ex() 修改返回值类型,可以识别出通信失败 - 多路烧录。写入1K的小文件(小于16K)时校验失败,读回校验bug - 多路模式选择读回模式校验失败,CRC校验OK。 - 可能导致死循环的BUG, uint8_t *MUL_swd_transfer_retry(uint32_t req, uint32_t *data) bug , uint8_t err_cout[4]; 应该为uint16_t类型。 3.其他 - lua_if_uart.c 取消通信失败的调试print语句 - 在主界面显示APP版本 - 调整内存分配,将ADC缓冲区合计(128K + 64K)迁移到其他内存块。扩大堆空间,用于运行更大的lua程序. /* 0x38000000 64KB */ uint16_t *aADCH1ConvertedData = (uint16_t *)0x38000000; uint16_t *aADCH2ConvertedData = (uint16_t *)(0x38000000 + 32 * 1024); /* 0x20000000 128KB */ float *g_Ch1WaveBuf = (float *)0x20000000; float *g_Ch2WaveBuf = (float *)(0x20000000 + 64 * 1024); - DAC波形发生器,低于30Hz频率异常,已修正,下限可以到1Hz. - 删除doc文件夹下的emmc磁盘文件。跟随PC软件发布. 4.遗留问题 - 示波器功能还存在缺陷,普通触发模式显示波形断裂.争取下个版本解决. ---------------------------------------------------------------------------- 2020-06-02 V1.21 1. 完善脱机烧录功能 - 烧录部分bin文件时,读回校验和软件CRC无问题,但硬件CRC有问题。 原因:bin文件长度不是4字节整数倍时存在计算错误 解决办法,补齐4字节再进行校验。 - 修改校验部分的代码,当FLM中有Verify校验函数时, 则优先用FLM中的Verify,而不是读回校验 - lua函数pg_reset() 支持带形参(复位时间ms)和无形参(缺省用20ms) - 修复emmc磁盘文件的bug,解决STM8编程编程失败的问题 - 增加STM8AF模板,验证了STM8AF5288 - 修复SLOW低速时钟模式,发送32bit数据未插入延迟的bug。主要用于多路烧录,应对线长的情况。 ---------------------------------------------------------------------------- 2020-05-27 V1.20 【重大更新,发布1拖4脱机烧录功能,请使用PC软件 V0.4版】 1. 完善脱机烧录功能 - 完成1拖4同步烧录功能(仅验证STM32。暂不支持STM8系列1拖4功能) - 校验模式可以通过lua设置(读回校验,软件CRC,硬件CRC) - 调整电压电流显示窗配色 - 烧录时间移到进度条右侧,进度文本信增大到整行宽度 - 编程参数增加多路模式下路数设置:1路,1-2路,1-3路,1-4路 - 解决bug: 烧写8K程序(不足16K),CRC校验出错 - 解决bug: 修正V1.10 BUG,STM8S005C6T6, 烧写32KB文件OK, 烧写20K文件失败。 - 解决bug: bin文件不是4字节整数倍时,CRC32出错 2. EMMC磁盘文件更新H7-TOOL\Programmer - 完善STM32烧录脚本文件,验证通过的有: STM32F0xx, STM32F10x, STM32F2xx, STM32F3xx, STM32F4xx, STM32F7xx, STM32H7x, STM32L0xx, STM32L1xx,STM32L4xx, STM32G0xx, STM32G4xx - 增加灵动MM32全系列烧录脚本文件, 验证通过的有: MM32F003, MM32F031, MM32F032, MM32F103, MM32L0xx, MM32L3xx, MM32SPIN0x, MM32SPIN2x, MM32W0xxB, MM32W3xxB - 增加LuaLib\fix_data.lua 和 LuaLib\prog_lib.lua 文件, 将公共脚本独立出来 - 改写全部lua脚本,实现一个lua脚本同时支持单路烧录和1拖4烧录 - 之前版本的lua烧录脚本均作废不再支持 3. lua功能增加dofile()函数支持,可以加载子文件,方便模块化编写lua脚本 4. s_lua_read_buf[LUA_READ_LEN_MAX] 修改为32字节对齐 5. 上电缺省启动lua,以前需要下载lua文件才能运行 6. 按键GPIO设置为上拉输入(生产时如果不接屏幕,偶尔会导致错误按键消息产生)。 7. 将显示屏SPI口的SPEED速度由GPIO_SPEED_FREQ_HIGH降到GPIO_SPEED_FREQ_MEDIUM。 7. 修改TVCC缺省的校准参数 8. 解决PC机软件不能停止采集的bug ---------------------------------------------------------------------------- 2020-04-08 V1.10 【修改&新增功能】 1. D0、D1口线增加TTL UART7串口功能,lua可以读写该串口。 2. lua接口增加本机按键的访问函数(暂未调通,逻辑还存在问题) 3. lua接口函数modbus_write_u16, 如果只写1个寄存器用06H功能码,多个寄存器才用10H功能码。 4. 脱机下载界面,如果没接芯片长按S键执行了连续烧录,界面会卡住没有提示。 修改为进入连续烧录模式后,按任意键退出连续烧录模式 5. 脱机编程器(缺省使用软件复位模式) - lua脚本中增加RESET_TYPE变量: RESET_TYPE = 0 -- 0表示软件复位 1表示硬件复位 - 编程参数界面增加复位选项:由lua选择、强制硬件复位、强制软件复位 【bug修复】 1. 修正V1.09新出的BUG, lua读取D8 GPIO异常. 2. 修改界面文字错误,"USB eMMM磁盘"更正为"USB eMMC磁盘" 3. lua小程序功能执行一次后再到脱机界面,会显示lua小程序的输出窗口。 原因:bsp_uart_fifo.c中fputc函数无条件执行LCD_MemoAddChar()函数 4. 屏幕息屏后只能唤醒一次,之后便不会再息屏,切换界面后正常息屏一次,之后又不行。已修复. 【其他】 1. 加入一拖四的源代码备份 - 该功能还未调通,仅调试到能够同步读出4个芯片的ID - 因为硬盘硬件损坏,编写调试了一个月的代码差一点丢失,因此推送到git先备份起来 - 供电问题: - 同时烧写4个芯片会涉及到TVCC供电不足的问题. - TVCC引脚仅支持400mA, - 5V的引脚只支持1000mA电流(5V输出有1个短路限流保护芯片碍事,早知不要了) - H7-TOOL主板3.3V电流有270mA,因此无法4个主板同时烧写. 3.3V被拖垮到2.4V - 上拉电阻问题:主板最初只设计了一路SWD接口(SWDIO引脚需要上拉电阻),其他3路的SWDIO无上拉电阻 - 供电问题和上拉电阻问题可以通过设计一拖四转接板来解决 2. 用户反映运行lua程序界面和脱机界面的按键逻辑和其他的不一样比较不习惯 - 其他界面一般是长按确认执行。但是在这2个界面,因为按钮功能需要频繁使用,所以设计为短按执行. - 原来准备修改的,但是没有想到更好的操作逻辑,暂时不改了。 3. 接受网友的建议,生成的bin文件名中的全角括号修改为半角括号 4. doc下的修改记录.txt文件取消。内容记录到根目录 CHANGELOG文件. ---------------------------------------------------------------------------- 2020-03-12 V1.09 【修改&新增功能】 1.脱机烧录功能 - 增加STM8芯片(STM8S和STM8L系列) - 增加自动识别硬件烧录不同的程序(识别算法由lua指定) - 增加组合烧录,比如一键烧写H7-TOOL的boot、app和QSPI Flash - FLM算法文件和数据文件支持绝对路径和相对路径 - 优化LUA脚本,支持读、写保护状态识别,自动解除保护状态 - 取消程序文件的大小显示,本次计数采用32点阵字体 - 支持PC机联机调试lua程序 - 打印内核ID、flash内容、RAM内容、UID、Option bytes - 修改和显示目标CPU的RAM和任意寄存器 - 擦除CPU内部Flash、EEPROM - 加读保护、解除保护 - 启动编程 - 解决无法烧录STM32L0xx芯片的BUG,L0系列的Init函数需要传递形参1-2才行 - 烧录时LED快闪,烧录成功候常亮,烧录失败后熄灭 - 烧录界面增加清零本次计数、清零累计计数功能。修改产品序号功能未做,后面有空再做。 2.LUA - print_hex 函数支持显示宽度和显示地址 【bug修复】 1.脱机编程算法占用的RAM可以通过lua文件指定,V1.08是固定0x1000。 某些片子不够用 2.READ_FMC()存在不能及时获取数据问题。解决方法:FMC内存空间需要配置为禁止cashe 3.微型数控电源界面如果关闭了蜂鸣器,无法确认是否进入了电压设置状态。 4.00联机模式界面 切换屏幕显示方向时,日期和时间不会显示. 【其他】 1.修改switch case语句缩进格式 ---------------------------------------------------------------------------- 2020-02-06 V1.08 -- 主要增加脱机烧录功能 1.脱机编程器功能(仅STM32芯片) - 通过文件浏览方式选择程序文件。不限制目录和文件个数。 - FLM算法文件从KEIL MDK中复制出来,存放到emmc磁盘 \H7-TOOL\Programmer\FLM,按厂商分类 - 目标程序文件、编程脚本存放到:\H7-TOOL\Programmer\User 文件夹。不限制目录级别和数量 - 动态解析FLM文件,分离出内存镜像通过swd加载到目标cpu ram - 支持多段bin写入 - 支持option bytes编程,烧录完毕设置读保护 - 支持自动解除读保护 - 支持动态填充产品序号、UID加密字段、用户自定义字段 - 自动保存烧录次数,支持剩余次数限制功能 - 支持连续烧录模式,检测到IC后自动烧录 - 可动态显示CPU电压和供电电流 - 通过lua脚本配置算法文件和数据文件(bin)以及控制编程过程 - lua非常灵活,可以很方便扩充功能,比如: - 日期窗口段内才允许烧录 - 目标板电流超限报警 - 限定UID(CPU唯一序号)符合规则的才允许烧录 - UID加密算法由用户自己定义 - 填充任意短数据(小于1K),比如可以写入生产日期时间或客户代码 - 关于程序文件保密问题。后期再考虑吧。 - 因为H7-TOOL软件开源,文件结构开源,为了避免程序文件被加工厂泄露,初步设想如下: - 控制USB虚拟磁盘程序入口,增加人工输入密码。 - 在虚拟磁盘扇区读写底层函数,以512字节为单位增加客户自定义加密和解密算法。这样emmc数据内容 就是被加密的,即使emmc芯片被复制出来放到其他H7-TOOL主板也无法识别。 2.菜单变更 - 联机模式长按S进入扩展功能菜单 : 脱机烧录器、LUA小程序、数据记录仪、系统设置 - 系统设置下级菜单:硬件信息、参设设置、ESP32固件升级、USB eMMC磁盘、数据维护 【bug修复】 V1.07 lua新增bug 不在lua小程序界面,执行PC机下下载lua程序会死机 - bsp_tft_lcd.c LCD_DrawMemo()函数,增加: 3284行 if (_pMemo->Text == 0) { return; } ---------------------------------------------------------------------------- 2019-12-26 V1.07 1.界面切换S键和C键功能交换,符合正常逻辑。 2.系统设置界面,增加USB磁盘访问eMMC 3.FatFS文件系统建立,支持目录浏览 4.中文字库2MB存放到QSPI Flash末尾,所有汉字都可以显示了,无需CPU内嵌小字库。 5.系统设置界面可以写字库文件,也可以刷新boot程序 6.实现Lua小程序脱机运行 7.数据记录仪只做了菜单(功能下个版本实现) bug修复: 1. USB通信时,熄屏后唤醒死机 while (wTransferState == 0){} - 原因:主程序SPI正在DMA传输显示数据,按键中断服务程序中执行LCD休眠操作,SPI被重置 导致DMA传输不能进入完成中断。 ---------------------------------------------------------------------------- 2019-12-09 V1.06 1.界面风格重新设计。24点阵、32点阵部分ASCII字符调整齐 2.实现长时间不按键自动熄屏功能 3.修改高侧电流界面120mA判据,增加回差控制 4.bsp_key.c按键驱动增加长按弹起事件,和短按弹起事件分开处理. 这样处理后 主状态函数中的 uint8_t ucIgnoreKey 忽略按键的代码就可以去掉了。 5.增加脱机烧录器界面(仅界面实现,未实现烧录功能) 6.联机界面增加时钟显示 ---------------------------------------------------------------------------- 2019-11-30 V1.05b 1.解决上电花屏2秒问题,原因:logo界面没刷屏 ---------------------------------------------------------------------------- 2019-11-29 V1.05 - 功能未增加,但是改动比较大,封一个版本。 1.HAL固件库、USB库升级到最新版(来自于en.stm32cubeh7 (V1.5.0)) -所有的GPIO寄存器操作更改为如下宏(因为新固件库取消了 BSRRH、BSRRL寄存器) #define BSP_SET_GPIO_1(gpio, pin) gpio->BSRR = pin #define BSP_SET_GPIO_0(gpio, pin) gpio->BSRR = (uint32_t)pin << 16U 2.显示屏驱动采用SPI+DMA驱动。整屏刷新18ms。(驱动由硬汉提供) - 修bsp_tft_st7789.c文件 - bsp_Idle()函数执行 ST7789_DrawScreen(); /* 硬件SPI+DMA+刷屏 */ - 使用0x30000000开始的240*240*2字节内存做显存 3.为了适应后台刷屏机制。所有的 while循环中bsp_Idle() 位置放到显示刷新后面 while (g_MainStatus == MS_CURRENT_METER) { if (fRefresh) /* 刷新整个界面 */ { fRefresh = 0; DispCurrentVolt(); AutoCurrentRange(); } bsp_Idle(); /* 必须在fRefresh语句后边, 否则刚进入界面会有闪烁感 */ ... } ---------------------------------------------------------------------------- 2019-11-25 V1.04 1.新增脉冲计数和频率计功能。status_pulse_meter.c 2.lua增加串口MODBUS接口函数 3.增加参数设置界面,目前可以关闭蜂鸣器,选择配色风格功能未做。 4.调整配色方案, ui_def.h文件定义颜色 5.部分界面的文字左对齐 6.系统设置-信息信息界面显示固件版本号 7.CDC串口驱动调整。COM切换时,不开关USB设备。 8.解决虚拟串口波特率低于2400不正确的bug 9.源代码加入Teeny-usb协议栈,未完全调通(临时屏蔽了,还是用ST的USB库) 2019-11-03 V1.03 1. 增加高侧电流表功能,测量负载电压、电流、功率,测量电池放电容量。 2. 增加二极管测量功能,和电阻测量同界面。 2019-10-20 V1.02 1. 批量发货版本,首版。