上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口,输出是一个tf卡。也就是说,这个记录器的作用,就是把ttl的信息记录到tf卡上面,有点类似于飞机上面的黑匣子。当然为了使用的方便,一般记录器还会搭配一个32.768k的晶振,以及一个5v的纽扣电池,它的作用就是在log生成的时候,同步添加上时间信息,这对debug的人来说,还是非常方便的。

1、实体的日志记录模块

        我们编写上位机程序的时候,都会手动添加一个log模块。但是,很多mcu的模块,本身flash就很少,自己又不想重新开发模块,所以补充添加一个这样的实体日志模块还是非常不错的。

2、主要实现的功能

        需要实现的功能主要有这么几个方面,

        (1)实现串口数据保存到tf卡上面;

        (2)实现上位机对模块的配置;

        (3)实现模块的低功耗运行。

3、上位机的开发

       上位机开发,主要就是对模块进行配置,配置的内容包括但不限于,

        (1)关于TTL的相关配置;

        (2)关于TF卡的相关配置;

        (3)关于RTC的相关配置;

        (4)关于文件的相关配置;

        (5)发送复位功能。

        上位机这部分可以和客户的输入接口进行复用。通过一个按钮进行区分,同时添加一个LED灯说明。默认是客户的信息输入,按下按钮之后,就可以利用上位机对它进行设置。

4、电路的设计

        整个硬件分成四个部分,分别是TTL、stm32f407、TF卡、RTC模块。TTL其实就是串口,这部分直接引出来即可。选用stm32f407,主要还是因为它资料比较多,本身也支持tf卡。TF卡部分,直接把sdio接线引出来即可。RTC模块。主要就是电源和晶振两部分注意下。

5、固件开发

       固件开发本身包含了两部分,一部分是bootloader,另外一部分是App。Bootloader这部分差异不大,我们主要把重点放在App这部分。

       从硬件流程来看,App的流程其实并不复杂。整个固件应该就是一个while(1) + 中断处理的形式就可以完成了。本身固件需要实现的内容如下所示,

       硬件驱动部分的实现,

        (1)GPIO输出功能实现;

        (2)Key按键实现;

        (3)数据串口和Debug串口实现;

        (4)TF卡的读写;

        (5)RTC功能的读取;

        (6)内部flash的读写;

        (7)看门狗功能。

        中间件部分的实现,

        (1)Fatfs文件系统的移植;

        (2)串口命令的解析。

        业务部分的实现,

        (1)获取串口数据,保存到TF卡当中;

        (2)实现上位机的配置;

        (3)低功耗设计;

        (4)一键恢复配置的功能。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 15:52:05       101 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 15:52:05       109 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 15:52:05       87 阅读
  4. Python语言-面向对象

    2024-07-12 15:52:05       96 阅读

热门阅读

  1. “存算分离“和“湖仓一体“

    2024-07-12 15:52:05       21 阅读
  2. 对数据采集、数据存储和数据处理流程

    2024-07-12 15:52:05       23 阅读
  3. 7.8作业

    7.8作业

    2024-07-12 15:52:05      25 阅读
  4. 使用GeographicLib在C++中进行地理坐标转换

    2024-07-12 15:52:05       24 阅读
  5. 使用Gunicorn提高Web应用的多核并发处理能力

    2024-07-12 15:52:05       29 阅读
  6. Vue使用socket实现实时通信

    2024-07-12 15:52:05       28 阅读
  7. golang使用migrate迁移pg数据库表报错处理

    2024-07-12 15:52:05       26 阅读