| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 基于STM32的自动量程转换数字电压表设计--开发笔记 -> 正文阅读 |
|
[嵌入式]基于STM32的自动量程转换数字电压表设计--开发笔记 |
一、选题老师给了5个题目,选题阶段大概有一个月的时间。选取题目时一定要根据自身基础仔细评估难度,确保自己能通过学习做出大部分内容,以免浪费大量时间导致最后来不及更换题目。 在赵茂泰老师主编的《智能仪器原理及应用》(第4版)书中介绍了智能仪器组成原理和一些常见应用,这些应用中就包括了DVM(数字电压表)的设计指标与基本组成原理,我的设计指标主要就是根据这本书里的介绍设定的。另外,书中还有一些其他应用如数字万用表等,大家可以自己去查看。 经过仔细评估,我选定电压表设计这个题目,并确定了下列指标与功能: 1.量程:测量范围为直流电压0~200V,分为200mV,2V,20V,200V共4挡。 在填写指标时尽量将指标写大些,例如这里我把误差设定成2%,实际做出的作品误差是1%左右,比预定指标还要好得多,一定要给自己留有余地,否则最后实现不了的话只会扣分。 二、方案设计初步的具体方案为: 以STM32F103C8T6为主控芯片,基于标准库函数开发程序,用芯片内置12位A/D配合外围量程转换电路实现多量程电压测量功能,OLED模块(I2C通信)显示电压值,蜂鸣器报警,LED指示灯,按键复位等。 这里设计方案时我主要参考的书籍仍然是上面提到的《智能仪器原理及应用》这本书。结合此方案画出大致的系统框图,如图2-1所示。 总体方案确定之后就可以着手进行相关知识的学习了。
三、自学过程及经验首先,STM32是个啥? 不知道怎么办?当然是学习了。于是我在学校图书馆开始找相关的书籍,最终找到了野火的《 STM32库(标准库)开发实战指南–基于STM32F103》(书名大致是这个,不必过于纠结)。 前面几章就是介绍STM32的,这下对STM32有了基本的认识。在看到编程开发那块,我觉得只看书太枯燥了,于是到B站找了一下视频,直接找到了野火官方出的教学视频,然后跟着视频学了大概半个月。 并不是所有视频都要看一遍,而是针对性学习自己感觉项目开发过程中可能会用到的知识。如果后面发现要用到其他知识还可以回来继续补充。
在学习视频的过程中我也知道了一些资源的获取途径,野火、正点原子官方网站都有相关技术文档,他们都是是免费公开的,包括我上面提到的《 STM32库(标准库)开发实战指南–基于STM32F103》这本书的PDF版。 经过以上部分的学习,我们需要用到的STM32标准库开发相关知识就基本掌握了。再结合网络搜索和一些官方开发板的原理图(如战舰、指南者之类),可以用Altium Designer(简称AD)软件画出适合自己的STM32最小系统原理图。 AD软件不会用的可以看B站Altium Designer 20 (AD20)详细教程视频,个人觉得老师讲的还不错,挺基础适合入门。之后大家也可以搜一下其他视频做补充、提高使用。
此时,我们已经熟悉了STM32最小系统以及标准库开发。 接下来,怎么构建外围电路,实现相关功能呢? 这里我们最好选择经过验证的电路(就是别人做过的),毕竟电路设计不是一时半会能学成的。 但是在采取别人电路时一定要弄懂每个器件的作用,这是最基本且重要的一点,否则在答辩时很容易露(la)馅(kua),很可能直接导致挂科。 如电容一般用来电源去耦、滤除噪声,电阻一般用来限流。 这里的辅助电路像蜂鸣器、USB供电、复位开关、LED灯等这些在一些用于学习的开发板上已经比较成熟了,可以参考它们的原理图设计电路,其对应的pcb封装库也可以通过官方资料找到。
那么实现主要功能的量程电路该怎么办呢? 经过前面的STM32标准库开发学习,我发现可以将量程转换控制完全由软件编程实现,于是这里我只需要找到能实现4个量程档的电路即可。 在知网检索相关论文,经过多番查找,终于发现了一篇用不同主控芯片实现量程转换的论文,文章里提供了量程转换电路。为进一步确定其功能,这里我们用Multism软件对其量程电路进行仿真,最终确认其能够实现我们的功能。 但是在实际设计时,最好考虑到噪声影响,一般是加去耦电容。
经过上述过程,我们已经完成了所有电路部分的设计,接着就是完善原理图,设计PCB版了。 不会用AD软件的童鞋可以自学一下,可以看上面提到的视频,也可以自己找相关书籍或视频自学。 PCB完成之后就可以打板了,这里推荐嘉立创打板,10cm*10cm的5块板只要5块钱而且还有顺丰包邮(如果涨价了当我没说)。
打板完成之后,焊接元器件,零基础硬件小白该怎么焊接? 1.建议向周围看下,有没有会硬件的大佬,向他们请教硬件焊接的一些小技巧; 2.找视频,学习经验,先用一块板子练习焊接经验。例如,拿个板子专门焊接贴片电阻(是本人没错了)。练习几天之后感觉差不多了就可以正式焊接器件了。焊接贴片器件时建议新生使用刀头电烙铁,可以秀很多操作。贴出一个我自学时用到的视频:一分钟教你贴片阻容类器件焊接。
元器件焊接完成之后就可下载程序,测试自己所写STM32程序是否正确了,这里一般需要很多次调试才能实现自己想要的功能。
到此为止,整个项目基本就完成了。 从4.1选题完成之后,到6.25验收之前,整个项目大概历时三个月(去除摸鱼时间实际两个月足够完成这些工作了hhh)。经过这次项目,本人也从一个啥也不懂的硬件小白成长为一个稍微懂一些硬件(起码硬件设计流程懂了)的硬件小白,也学会了用STM32开发一个小项目,收获颇丰(个人感觉)。 写出这篇博客,一方面可以记录一下学习心得,另一方面也想为像我一样的硬件小白提供一些经验吧,最后也为桂电八院接口实验的同志们提供一些参考,愿诸君共勉!
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:49:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |