based-on-stm32-taxi-meter/README.md
小冯Sir 33a2a30b8a
update README.md.
Signed-off-by: 小冯Sir <fengsir.hy@foxmail.com>
2024-05-04 11:44:58 +00:00

31 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 前言
首先这是我的综合电子创新设计的课设我选择了基于STM32的出租车计价器作为我的课设项目。虽然我已经初步完成了该项目的硬件搭建和软件编程但深知在代码实现和整体设计上仍有诸多待完善的地方。这个项目不仅是对我学习STM32应用的一次重要时间也是对我的电子设计能力的一次全面挑战。在接下来的博客中我将分享我在设计出租车计价器过程中遇到的问题解决方案以及我的一些思考同时也期待同行们的建议和指正。
## 为什么做出租车计价器
主要是因为老师让我们选的题目之一我们小组就选择了出租车计价器我主要负责硬件和软件的设计其他小组成员帮我写ppt和查找资料。
# 一、项目文件说明
## 1.1 Firmware
Firmware文件夹是整个项目的固件即包含了该项目的完整的代码如果硬件设计一致可以直接下载使用。非常方便。此外开发环境并不是cubeMX+keil,而是cubeMX+Clion所以可能需要迁移项目至keil或者直接像我一样使用Clion开发stm32。这里也给出用Clion开发stm32的一篇教程[配置CLion用于STM32开发【优雅の嵌入式开发】](https://zhuanlan.zhihu.com/p/145801160)
具体的配置直接打开.ioc文件就知道了
## 1.2 Bootloader
Bootloader文件夹是项目的固件引导即可以实现IAP升级的固件但是由于时间和技术的原因该文件夹的代码未能实现只是创建了一个工程。同样也是使用Clion开发的里面的代码参考了正点原子的代码。主要是我的Firmware编译出来的.bin文件大约有152KB所以直接传输给STM32会溢出所以要采用流式传输给STM32这里还没有实现。
# 硬件架构
该项目的硬件使用的是STM32F103VET6作为控制器因为有512KB的FLASH和64KB的RAM可以说对于本项目来说是够用的Firmware编译出来的固件达到了152KB所以使用其他控制器时应该大于152KB。
当然我并没有自己设计PCB而是直接使用了现成的模块所以我的STM32是使用了魔女的开发板不是广告。[链接](https://item.taobao.com/item.htm?id=665365360620&spm=a1z10.1-c-s.w4004-23093508104.7.776f5c0eRfbjRn&skuId=4969448682317)
![alt text](https://cdn.jsdelivr.net/gh/LittleFengSir/fengsir-imgs/image-1.png)
因为手头上有这个开发板就使用这个开发板只是为了能够完成课设。此外屏幕是是2.8寸的触摸屏其主控芯片为ILI9341使用FSMC来控制它。然后我的屏幕被同学压出了三条缝所幸还可以正常显示就是触摸没有了。
然后就是电机模拟出租车的正常行驶我这里使用了马达和马盘以及光耦测速模块这里可以替换成带有编码器的电机再加上电机驱动。我这里是马达直接使用开发板的5V供电就没有使用电机驱动但还是得注意电机的过流问题。
本项目还使用了SD卡我使用的SD卡是32G容量的。
# 程序架构
系统初始化的时候会创建一个以默认参数的config.txt保存在system目录下通过读取SD卡可以修改系统的相关参数。但也没啥参数就保存了日期和价格以及串口的用户名和密码这个并没有实现连接串口后直接发命令即可无需验证用户名和密码
该项目的程序使用了cJSON库所以编译的时候需要加入cJSON库的编译并且使用了中间件FATFS文件系统以及USB设备。USB设备根据.ioc就知道是一个大容量的存储设备主要是为了能够不拔卡就可以访问SD卡里的内容这里不是很完善有点小bug有出现电脑识别不了USb设备的情况
当开始计价的时候定时器4就会开始工作每1s进行一次速度和里程的计算然后计价结束后定时器4的中断就会被关闭然后创建一个订单文件以.txt形式保存内容是以JSON格式进行保存方便读取和存储。我也尝试了一下使用.json的拓展名但是好像Fatfs文件系统并不支持所以使用了.txt扩展名。