提示:本文仅阐述了关于嵌入式项目开发的学习思路,用于记录项目经历和分享学习,不涉及具体实现!学习思路仅供参考学习。

一、选题

老师给了5个题目,选题阶段大概有一个月的时间。选取题目时一定要根据自身基础仔细评估难度,确保自己能通过学习做出大部分内容,以免浪费大量时间导致最后来不及更换题目。

赵茂泰老师主编的《智能仪器原理及应用》(第4版)书中介绍了智能仪器组成原理和一些常见应用,这些应用中就包括了DVM(数字电压表)的设计指标与基本组成原理,我的设计指标主要就是根据这本书里的介绍设定的。另外,书中还有一些其他应用如数字万用表等,大家可以自己去查看。

经过仔细评估,我选定电压表设计这个题目,并确定了下列指标与功能

1.量程:测量范围为直流电压0~200V,分为200mV,2V,20V,200V共4挡。
2.位数:3位半。
3.精确度:这里用相对误差表示,指标为±2%。
4.分辨率:0.05%,分辨力为0.1mV。
5.测量速度:2次/s。
6.功能:自动量程转换,超量程报警,复位功能,OLED 屏幕显示,指示灯。

在填写指标时尽量将指标写大些,例如这里我把误差设定成2%,实际做出的作品误差是1%左右,比预定指标还要好得多,一定要给自己留有余地,否则最后实现不了的话只会扣分。

二、方案设计

初步的具体方案为:

以STM32F103C8T6为主控芯片,基于标准库函数开发程序,用芯片内置12位A/D配合外围量程转换电路实现多量程电压测量功能,OLED模块(I2C通信)显示电压值,蜂鸣器报警,LED指示灯,按键复位等

这里设计方案时我主要参考的书籍仍然是上面提到的《智能仪器原理及应用》这本书。结合此方案画出大致的系统框图,如图2-1所示。

图2-1 系统总体方案框图

总体方案确定之后就可以着手进行相关知识的学习了。

注意:如果所选题目有太多人选择的话,这时就需要查看他们的指标和实现方式与自己的方案是否雷同。如果雷同,建议重新设计方案或者及时换题!

三、自学过程及经验

1、首先,STM32是个啥?

不知道怎么办?当然是学习了。于是我在学校图书馆开始找相关的书籍,最终找到了野火的《 STM32库(标准库)开发实战指南–基于STM32F103》(书名大致是这个,不必过于纠结)。

前面几章就是介绍STM32的,这下对STM32有了基本的认识。在看到编程开发那块,我觉得只看书太枯燥了,于是到B站找了一下视频,直接找到了野火官方出的教学视频,然后跟着视频学了大概半个月

并不是所有视频都要看一遍,而是针对性学习自己感觉项目开发过程中可能会用到的知识。如果后面发现要用到其他知识还可以回来继续补充。

如果是初学者,个人建议跟着野火的教程学习,这里讲的比较详细并且逻辑性也很好。

在学习视频的过程中我也知道了一些资源的获取途径,野火、正点原子官方网站都有相关技术文档,他们都是是免费公开的,包括我上面提到的《 STM32库(标准库)开发实战指南–基于STM32F103》这本书的PDF版。

经过以上部分的学习,我们需要用到的STM32标准库开发相关知识就基本掌握了。再结合网络搜索和一些官方开发板的原理图(如战舰、指南者之类),可以用Altium Designer(简称AD)软件画出适合自己的STM32最小系统原理图。

AD软件不会用的可以看B站Altium Designer 20 (AD20)详细教程视频,个人觉得老师讲的还不错,挺基础适合入门。之后大家也可以搜一下其他视频做补充、提高使用。

-----------↑↑STM32最小系统原理图完成↑↑----------------

此时,我们已经熟悉了STM32最小系统以及标准库开发。

2、接下来,怎么构建外围电路,实现相关功能呢?

这里我们最好选择经过验证的电路(就是别人做过的),毕竟电路设计不是一时半会能学成的。

但是在采取别人电路时一定要弄懂每个器件的作用,这是最基本且重要的一点,否则在答辩时很容易露馅,很可能直接导致挂科

如电容一般用来电源去耦、滤除噪声,电阻一般用来限流。

这里的辅助电路蜂鸣器、USB供电、复位开关、LED灯等这些在一些用于学习的开发板上已经比较成熟了,可以参考它们的原理图设计电路,其对应的pcb封装库也可以通过官方资料找到。

-------↑↑辅助外围电路完成↑↑-----------

3、那么实现主要功能的量程电路该怎么办呢?

经过前面的STM32标准库开发学习,我发现可以将量程转换控制完全由软件编程实现,于是这里我只需要找到能实现4个量程档的电路即可。

在知网检索相关论文,经过多番查找,终于发现了一篇用不同主控芯片实现量程转换的论文,文章里提供了量程转换电路。为进一步确定其功能,这里我们用Multism软件对其量程电路进行仿真,最终确认其能够实现我们的功能。

但是在实际设计时,最好考虑到噪声影响,一般是加去耦电容。

--------↑↑量程电路完成↑↑-----------

经过上述过程,我们已经完成了所有电路部分的设计,接着进行4↓↓↓

4、完善原理图,设计PCB板。

不会用AD软件的童鞋可以自学一下,可以看上面提到的视频,也可以自己找相关书籍或视频自学。

PCB完成之后就可以打板了,这里推荐嘉立创打板,10cm*10cm的5块板只要5块钱而且还有顺丰包邮(如果涨价了当我没说)。

--------↑↑打板完成↑↑-----------

打板完成之后,开始5↓↓↓

5、焊接元器件

零基础硬件小白该怎么焊接?
1.建议向周围看下,有没有会硬件的大佬,向他们请教硬件焊接的一些小技巧;

2.找视频,学习经验,先用一块板子练习焊接经验。例如,拿个板子专门焊接贴片电阻(是本人没错了)。练习几天之后感觉差不多了就可以正式焊接器件了。焊接贴片器件时建议新生使用刀头电烙铁,可以秀很多操作。贴出一个我自学时用到的视频:一分钟教你贴片阻容类器件焊接。

---------↑↑焊接完成↑↑-----------

元器件焊接完成之后就可下载程序,测试自己所写STM32程序是否正确了,这里一般需要很多次调试才能实现自己想要的功能。

----------↑↑测试完成↑↑---------------

到此为止,整个项目基本就完成了。

从4.1选题完成之后,到6.1完成之前,整个项目大概历时2个月。经过这次项目,我对硬件设计流程有了清晰的了解,收获颇丰。一通百通,相信之后用STM32开发其他项目也会比较轻松。

写出这篇博客,一方面可以记录一下学习心得,另一方面也为拿到一个嵌入式类项目无从下手的小伙伴提供一些经验吧,愿诸君共勉!

由于本人水平有限,文章难免有遗漏错误,如果大家有什么好的意见或者建议欢迎评论、私信指正,感谢!

附:原理图和PCB文件下载

基于STM32的自动量程转换数字电压表设计--开发笔记相关推荐

  1. 基于单片机的自动分拣小车的设计--毕业设计参考

    基于单片机的自动分拣小车的设计 第1章.课题内容 1.系统应用单片机的基础功能,设计相关的电子电路,搭配合适的电子器件和传感器技术等,实现自动分拣的功能. 2.对方案的总体成份进行论证和设计. 3.根 ...

  2. 【毕业设计】基于 STM32 的自动泊车系统 -智能小车 - 物联网单片机

    文章目录 1 简介 1 背景 2 设计概要 3 硬件选型 3.1 主控 - STM32 3.2 电机驱动 3.3 红外遥控设计 3.4 传感器部分 3.4.1 循迹模块 3.4.2 红外避障模块 3. ...

  3. 基于 STM32 的新型激光测距控制系统的设计

    基于 STM32 的新型激光测距控制系统的设计 基于 STM32 的新型激光测距控制系统的设计 闵小 (陕西理工大学(物理与电信工程学院)电子专业1502班,陕西 汉中 723003) 指导老师:韩团 ...

  4. 单片机毕业设计 基于stm32的自动泊车系统

    文章目录 1 简介 1 背景 2 设计概要 3 硬件选型 3.1 主控 - STM32 3.2 电机驱动 3.3 红外遥控设计 3.4 传感器部分 3.4.1 循迹模块 3.4.2 红外避障模块 3. ...

  5. a4988 脉宽要求_基于STM32的微型步进电机驱动控制器设计

    基于STM32的微型步进电机驱动控制器设计 摘 要: 设计了一种微型步进电机驱动控制器,通过上位机界面修改步进电机转速.旋转角度.细分系数.该设计以STM32F103T8U6作为主控制器,以A4988 ...

  6. 18、基于STM32的自动浇花系统

    18.基于STM32的自动浇花系统 引言 1 系统概述 1.1设计任务 1.2设计要求 2 方案设计与论证 2.1芯片选择方案 2.2 系统概述 2.3系统总体设计思路 2.4各功能模块程序实现原理分 ...

  7. diy 单片机 自动浇花_基于单片机的自动浇花器设计

    龙源期刊网 http://www.qikan.com.cn 基于单片机的自动浇花器设计 作者:陈赋铭 来源:<农家科技下旬刊> 2015 年第 04 期 摘 要:本文是基于单片机 AT89 ...

  8. 基于STM32与红外感应开关的自动门设计与实现(结构+设计)

    基于STM32与红外感应开关的自动门设计与实现 采用STM32作为主控,设计了自动和手动开门装置,MLX90614作为设计测温装置. 前言说明 元器件清单说明 STM32F103C8T6系统板 微型滑 ...

  9. 基于STM32的电子琴音乐播放器设计

    基于STM32的电子琴/音乐播放器设计 文章目录 基于STM32的电子琴/音乐播放器设计 @[toc] 引言 第一章 总体设计 1.1 系统功能 1.2 主要技术性能指标 第二章 系统设计 2.1 系 ...

最新文章

  1. SMO学习笔记(二)——还原(恢复)篇之完整恢复
  2. Prism V2之旅(1)
  3. 浅析网络推广外包公司如何完成营销型网站建设完成网络推广外包?
  4. wp7 sdk部署应用操作
  5. Thymeleaf介绍
  6. 系统提示一个程序正在被另一个程序调用,如何知道是被哪个程序调用
  7. 第六节:教你如何在html中绑定数据
  8. 图书馆管理系统——超期付款
  9. 团队的远程管理_不管理远程团队的7种方法
  10. Java-占位符的使用
  11. C++/mfc错误总结
  12. linux下单网卡设双置IP
  13. Alex 的 Hadoop 菜鸟教程: 第6课 Hbase 安装教程
  14. linux 屏幕录像软件,Linux_Linux下好用的5个屏幕录像软件,在很多时候,我们需要将在 Lin - phpStudy...
  15. Ceph RBD 使用详细说明
  16. Android手机管理工具类
  17. Django + mysql + 微信 抢票之本地环境搭建
  18. 如何在vue中优雅的使用ocx控件:结合iframe
  19. js根据后缀判断文件文件类型
  20. verdi/debussy的快捷键 以及基本操作

热门文章

  1. 通过Java连接Sql Server数据库
  2. 成功解决The following specifications were found to be incompatible with the existing python installation
  3. Excel图片也能一对多查找输入姓名找到所有图片
  4. Android系统调试(02)ANR问题总结
  5. 字符串数组,字符数组
  6. 工业相机厂家十大排名
  7. 中基鸿业投资理财这五点要学会
  8. GTS Fail修改集锦com.google.android.xts.afw.AfwRequiredAppsOverlaysTest
  9. 【成长之路】本科比赛作品设计经验分享
  10. 对话:通证(token)是下一代互联网数字经济的关键