当前位置:网站首页>(工作记录)2020年3月11日至2021年3月15日

(工作记录)2020年3月11日至2021年3月15日

2022-07-06 12:24:00 Kshine2017

在这里插入图片描述

1. 恒光源,光电采集板

在这里插入图片描述

1.1 计划

刚进入公司,需要快速的接手一些工作。
在这里插入图片描述

1.2 设备版本迭代

在这里插入图片描述

1.3 调试问题记录

1.3.1 定时中断使用,不进入中断?

在这里插入图片描述

1.3.2 采样通道划分

在这里插入图片描述

1.3.3 在20us的中断内,使用SPI通讯读取AD值

在这里插入图片描述

1.3.4 按键和led

在这里插入图片描述

1.3.5 与PLC通信时,不能即使响应PLC发来的命令

在这里插入图片描述

1.3.6 PLC发送的命令未能即使被处理与回包。

在这里插入图片描述

1.3.7 MCU发送到PLC的11通道值错位

在这里插入图片描述

1.3.8 设备运行一段时间后,重新上电,不能正常工作

在这里插入图片描述

1.3.9 PID调节时,不能跨度很大的调节

在这里插入图片描述

1.3.10 Boot升级,出现升级到中途中,卡死的问题

在这里插入图片描述

1.3.11 测试光谱仪通讯时,发现DMA发送会死机

在这里插入图片描述

1.3.12 modbus串行发送,组帧出错。

在这里插入图片描述

1.3.13 温湿度传感器长时间工作后,温度值读满65535

在这里插入图片描述

1.4 Modbus协议

在这里插入图片描述

1.4.1 修改后的帧协议格式

在这里插入图片描述

1.4.2 工业标准

在这里插入图片描述

1.4.3 通信指令

在这里插入图片描述

1.4.4 光谱仪相关指令

在这里插入图片描述

1.5 光谱仪相关逻辑

在这里插入图片描述

1.6 编译生成

在这里插入图片描述

1.7 传输浮点数的大小端转换

在这里插入图片描述

1.8 Bootloader工程

1.8.1 Ymodem协议

在这里插入图片描述

1.8.2 Flash操作

在这里插入图片描述

1.8.3 串口配置

在这里插入图片描述

1.8.4 问题记录

在这里插入图片描述

1.8.5 在Boot中,是否可以使用F103读取U盘?

在这里插入图片描述

  • 后期补充
    在这里插入图片描述

2. pH/ORP变送器,数采仪

在这里插入图片描述

2.1 早期准备

  • 界面显示和触摸的功能。试过UGUI,最终选用STemWin图形库。
    在这里插入图片描述

2.1.1 显示屏显示相关

  • FSMC
    在这里插入图片描述
  • 显示芯片的时间参数
    在这里插入图片描述
  • 关于MCU的FSMC地址的使用划分
    在这里插入图片描述
  • LCD引脚
    在这里插入图片描述
    - 注意事项
  • FSMC地址的理解
    在这里插入图片描述
    在这里插入图片描述

2.1.2 触摸屏的触摸芯片

在这里插入图片描述

  • GT9147电容触摸
    在这里插入图片描述
  • XPT2046/HR2046电阻式触摸
    在这里插入图片描述
  • ADS7843电阻触摸
    在这里插入图片描述

2.2 其他准备

2.2.1 EEprom存储设备,AT24CXX

  • 出现问题
    在这里插入图片描述
  • 解决方式
    在这里插入图片描述
  • EEPROM中存放校准触摸的参数
    在这里插入图片描述

2.2.2 SD卡/TF卡和文件系统

在这里插入图片描述

  • SD卡4位宽 参数设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 驱动代码框架分析
    在这里插入图片描述
  • SDIO通信需要开关中断
    在这里插入图片描述
  • SDIO的分频系数
    在这里插入图片描述

2.2.3 AD采集和DA输出

  • AD采集
    在这里插入图片描述
  • DAC输出
    在这里插入图片描述

2.2.4 RTC时间

在这里插入图片描述

2.2.5 串口

在这里插入图片描述

2.3 初始开发阶段

2.3.1 罗姆LCD触摸屏

在这里插入图片描述

  • 初始化过程
    在这里插入图片描述

2.3.2 工程拆分

在这里插入图片描述

2.3.3 EmWin界面设计

  • 关于移植添加Emwin
    在这里插入图片描述
  • 闪屏问题
    在这里插入图片描述
  • 如何绘制闪烁图片的效果
    在这里插入图片描述
  • 切换子页面后显示重影
    在这里插入图片描述

2.3.4 界面问题记录

  • 小键盘输入异常
    在这里插入图片描述

  • 校正页面缺少保存参数的按钮
    在这里插入图片描述

  • ADS1220进行温度读取
    在这里插入图片描述

  • 在没有重定向fputc的时候,不可以使用printf。

  • ADS1220读数异常,在两个数字之间跳。
    在这里插入图片描述
    在这里插入图片描述

  • 部分功能实现

在这里插入图片描述

  • 部分BUG修正
    在这里插入图片描述

  • 锁相环等待ready失败
    在这里插入图片描述

  • 片内ADC采集pH电动势,存在1~2mV波动,导致pH值存在0.04左右的波动
    在这里插入图片描述

  • LL库死循环等待
    在这里插入图片描述

  • 关于pH的测量,引入温度参与计算
    在这里插入图片描述

  • 针对片内AD波动的情况,考虑延时给数字
    在这里插入图片描述

  • W25Q128芯片,按照时间戳存放记录
    在这里插入图片描述

  • SD卡文件系统,写数据1小时左右,文件系统会崩,无法继续写
    在这里插入图片描述

  • 界面读取显示,通过按键开始读数据的动作
    在这里插入图片描述

  • 文件系统中的时间
    在这里插入图片描述

  • RTC时间的问题
    在这里插入图片描述

  • 增加时间设置页面
    在这里插入图片描述

  • 切换“天”“小时”,创建新的文件夹和文件
    在这里插入图片描述

  • 记录pH数据,发现异常值
    在这里插入图片描述

  • 掉电之后,RTC时间不走
    在这里插入图片描述

  • 关于片外FLASH的设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 对空间进行划分
    在这里插入图片描述

  • SPI逆初始化
    在这里插入图片描述

  • 对AD采集pH的代码进行优化
    在这里插入图片描述
    在这里插入图片描述

  • W25Q128最终方案(当前版本)
    在这里插入图片描述

  • 硬件改造
    在这里插入图片描述

  • 日志数据格式
    在这里插入图片描述

  • 界面总结
    在这里插入图片描述

3. Luat脚本开发

合宙Air724UG。

3.1 功能概述

在这里插入图片描述

3.2 lua语法与框架设计

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3 项目要求

3.3.1 读取设备数据和设置参数

在这里插入图片描述

3.3.2 数采仪向分析仪写指令

在这里插入图片描述

3.3.3 采集数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3.4 工程代码框架

在这里插入图片描述

3.3.5 关于串口的使用

在这里插入图片描述

3.3.6 线程划分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 当前进度

在这里插入图片描述

4. 实时系统RTOS学习与回顾

4.1 FreeRTOS

4.1.1 核心功能

在这里插入图片描述

4.1.2 内存管理

在这里插入图片描述

  • heap1
    在这里插入图片描述

  • heap2
    在这里插入图片描述

  • heap3

  • heap4
    在这里插入图片描述

4.1.3 任务管理

在这里插入图片描述

4.2 LiteOS

4.2.1 简介

在这里插入图片描述

4.2.2 CORE-A,R,M三种核

在这里插入图片描述

4.2.3 什么是CMSIS

在这里插入图片描述

4.2.4 tickless低功耗模式

在这里插入图片描述

4.2.5 LwM2M轻量级机器到机器协议

在这里插入图片描述
在这里插入图片描述

4.2.6 NB-IOT窄带物联网

在这里插入图片描述

4.2.7 mbedTLS (SSL/TLS算法库)

在这里插入图片描述

4.2.8 lwIP

4.2.9 mqtt

4.2.10 LiteOS移植

在这里插入图片描述

4.3 RT-thread

在这里插入图片描述

4.3.1 源码移植

  • 头文件路径
  • 需要被包含的源文件
    在这里插入图片描述

4.3.2 动态任务线程创建

在这里插入图片描述

4.3.3 Shell如何添加到系统?

  • 实现UART控制台
    在这里插入图片描述
  • 添加FinSH组件
    在这里插入图片描述
  • Shell如何启动
    在这里插入图片描述

4.3.4 组件初始化顺序

在这里插入图片描述

4.3.5 简介

在这里插入图片描述
在这里插入图片描述

4.3.6 内核

在这里插入图片描述

4.3.7 启动文件

在这里插入图片描述

4.3.8 对象容器

在这里插入图片描述

4.3.9 内核之线程调度器

在这里插入图片描述

4.3.10 任务切换,上下文切换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.11 线程管理

在这里插入图片描述
在这里插入图片描述

4.3.12 线程间同步

在这里插入图片描述
在这里插入图片描述

4.3.13 线程间通信

在这里插入图片描述

4.3.14 定时器

在这里插入图片描述

5.串口扩展板

5.1 概述

基于F103RCT6,RT-thread实时系统。

5.2 串口划分

在这里插入图片描述

5.3 运行指示灯

在这里插入图片描述

5.4 线程划分

在这里插入图片描述

5.5 消息队列的使用

在这里插入图片描述

5.6 PLC下发的报文

在这里插入图片描述

5.6.1 功能码

在这里插入图片描述

5.6.2 寄存器定义

在这里插入图片描述
在这里插入图片描述

5.7 开始实现

5.7.1 主串口(usart1)

  • 接收来自PLC的报文:
    在这里插入图片描述

  • 采用485通信,DMA收发。
    在这里插入图片描述

  • DMA的寄存器结构体
    在这里插入图片描述

5.7.2 业务逻辑

在这里插入图片描述

5.7.3 软件版本号定义

在这里插入图片描述

5.8 问题记录

5.8.1 消息队列获取消息,消息长度不定

在这里插入图片描述

5.8.2 上位机界面设计

在这里插入图片描述
在这里插入图片描述

5.8.3 DMA发送数据不完整

在这里插入图片描述

5.8.4 keil编译问题

在这里插入图片描述

5.8.5 输出量数据定义

在这里插入图片描述

5.8.6 rtos启动软件定时器,响应速度变慢

在这里插入图片描述

5.8.7 检查从串口的站地址

在这里插入图片描述

5.8.8 当前进度

在这里插入图片描述

5.8.9 特殊情况,串口5没有DMA

在这里插入图片描述

5.8.10 ADC校准

在这里插入图片描述

5.8.11 硬件CRC32不可以用来modbus计算

在这里插入图片描述

5.8.12 下载调试异常

在这里插入图片描述

6. 屏幕使用-迪文

在这里插入图片描述

6.1 基本介绍

  • DMG12720 T 050
    在这里插入图片描述
  • DMG10600 T070
    在这里插入图片描述

6.2 软件的使用

在这里插入图片描述

6.3 软件图标

在这里插入图片描述

6.4 弹出菜单

在这里插入图片描述

6.5 RAM变量地址范围

在这里插入图片描述

6.6 其他

在这里插入图片描述
在这里插入图片描述

7. 屏幕使用-大彩

7.1 简介

在这里插入图片描述

7.2 开发准备

在这里插入图片描述

7.3 Visual TFT使用

在这里插入图片描述

8. 湿度变送器

8.1 资源分配

在这里插入图片描述

8.2 加热单元

在这里插入图片描述

8.3 湿度脉冲计数

  • 100ms内的脉冲数
    在这里插入图片描述

8.4 看门狗

  • 40KHz

8.5 移植Rt-thread

  • 参考前文

8.6 创建线程

在这里插入图片描述

8.7 问题记录-串口接收数据全0

在这里插入图片描述

8.8 待完成功能

在这里插入图片描述

8.9 问题记录

8.9.1 输入捕获

在这里插入图片描述

8.9.2 电容与频率

在这里插入图片描述

8.9.3 PID参数估算

在这里插入图片描述

8.9.4 PWM使用PB12,IO模拟

在这里插入图片描述

8.9.5 控温

在这里插入图片描述

原网站

版权声明
本文为[Kshine2017]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Kshine2017/article/details/125215301