STM32单片机系统软件设计
1、编程语言选择
由于整个程序比较复杂,且计算量较大,用到了较多的浮点数计算,所以程序的编写采用了C语言。
对于大多数单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:
(1)不需要了解处理器的指令集,也不必了解存储器结构。
(2)寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的(3)地址和数据类型等细节。
(4)指定操作的变量选择组合提高了程序的可读性。
(5)可使用与人的思维更相近的关键字和操作函数。
(6)与使用汇编语言相比,程序的开发和调试时间大大缩短。
(7)C语言的库文件提供了许多标准的例程。
(8)通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中。
(9)C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,己完成的项目可以很容易的转换到其它的处理器或环境中与汇编语言相比,C语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势,易学易用。
2、Keil程序开发环境
本设计中单片机开发环境是Keil,Keil是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。其中Keil有以下特点:
(1)Keil软件同时支持WINXP和WIN7等多种操作系统,提供了丰富的库函数和功能强大的开发工具。
(2)Keil可以完成从编辑、编译、到连接、调试的一套开发流程。
Keil软件界面如下图所示。
Keil uVision5开发界面图
3、FlyMcu程序烧录软件介绍
FlyMcu是一款好用的stm32烧录程序软件,对于专业的单片机开发者来说应该非常适用,软件可以广泛地应用于电路编程(ICP)和应用编程(IAP)领域,支持进行编程、校验、读器件信息。
可以通过下载器(即CH340等串口烧写模块)下载单片机程序。单片机开发板、下载器以及PC连接好后,首先需要在软件中选择串口号,然后选择项目程序“hex”文件所在的地址,最后就可以点击开“开始编程(P)”按钮即可下载程序。具体下载界面如下图所示。
烧录软件下载界面
4、CH340串口程序烧写模块介绍
本设计通过CH340串口烧写模块实现对单片机程序的烧写。CH340串口烧写模块使用USB接口,十分方便的解决了笔记本电脑用户对STC系列单片机的程序烧写问题,本下载器低价格、高性能,是开发 STC 系列单片机的首选优秀工具。
一、CH340串口烧写模块特点:
(1)支持 USB1.1 或 USB2.0 通信;
(2)全面支持 WIN98、 WINME、 WIN2000、 WINXP、 VISTA、 WIN7 等操作系统;
(3)采用 USB 口供电;
(4)在对芯片编程时可以使用目标系统本身电源,也可以使用编程器从 USB 口取电供给目标板,但应保证目标板电流不大于500mA,以免不能正常编程;
(5)编程完成不影响目标板的程序运行;
(6)支持 STC 全系列芯片烧录;
(7)编程器提供 3.3V 与 5V 的电压输出接口;
(8)速度比并口编程更快更稳定,更方便笔记本电脑用户使用;
(9)采用进口原装芯片, 能进行高速稳定编程;
模块如下图所示。
CH340串口烧写模块
二、CH340串口烧写模块引脚说明
(1)+5V 5V输出,因有USB电源线,故本开发板不接,不需要
(2)VCC 本开发板不接,不需要
(3)3V3 3.3V输出,本开发板不接,不需要
(4)TXD 接单片机的RXD引脚
(5)RXD 接单片机的RXD引脚
(6)GND 接GND。
三、CH340串口烧写模块与单片机的具体接线图如下表所示。
CH340模块 |
单片机开发板 |
TXD |
RXD(单片机引脚PA10) |
RXD |
TXD(单片机引脚PA9) |
GND |
GND |
CH340串口烧写模块与单片机接线
手工焊接是常用原始的焊接方法,目前大量工厂焊接的生产基本上不采用原始方法了,但是普通元器件的修理、系统测试中经常使用原始的手工焊接。重要的是如焊接本质上出现问题,则会影响到整个控制系统的,可以这么说,焊接的会导致这个控制系统可不可以用的。手工焊接主要有如下四步组成的:
第一步开始焊接:
需要把需要焊接的地方打扫干净,主要去处油迹和灰尘,然后把需要焊接的元器件的两个角向一定的方向掰一掰,注意不能把元器件的脚相交在一起了,这样会影响焊接的。接下来让电烙铁头碰到需要焊接的元器件脚下,放上焊锡丝。此处需要注意的是,不能让烙铁头碰到其它元器件的脚了,要不然会把两个元器件焊接在一起了。
第二步给焊接升温:
当在完成第一步以后,接下来就是加热焊锡丝了,主要是将烧热的电烙铁放在器件管脚旁边,慢慢融化焊锡丝,需要注意电洛铁的温度和加热时间,若时间过长,很有可能焊坏面包板焊盘的,一般建议电洛铁温度调整在400℃左右,加热2秒钟左右,例外也要根据器件种类作出具体区别的。在焊接过程中,当需要把焊接好的元器件卸下来,则也需要给焊接处进行加热的,主要操作是首先在焊接处补好焊锡丝,使焊点是圆润的,然后用电洛铁在焊接处进行加热,在加热的过程中就可以直接把元器件卸下来了,此时一定要主要时间,要不然也会损坏焊盘的
第三部清理焊接面:
当在完成第二步时,有的时候会观察到焊接的不完美或者担心出现虚焊情况,这时候需要进行修改的。主要是两种情况的,第一种是焊锡不够,焊接点不圆润,这时需要给焊接处补焊锡,此时需要注意的是焊锡量不能补多,要不然容易连接到其它期间的引脚的。第二种是焊锡过多,这时候可以用电洛铁放在焊接处来回的滑动,会把多余的焊锡带走的,若不行,只能使用吸锡器了。
第四部检查焊点:
当完成以上三步了,最后就需要整体观察了,主要是观看焊接点是不是圆满、亮度好、紧固,有没有与其它管脚相连在一起了。
5.2 系统调试
整体系统上电调试前,大概观察下焊接的系统还存在问题,例如还有很显眼的断裂,正负极接反以及相连、虚焊、等问题,然后用万用表检测一下,电源正负极之间是否短路等严重的电源问题,最终保证系统焊接没有问题。
在搭建调试平台后,需要对软件程序进行调试,若程序调试没有问题,接下来开始验证系统功能是否满足要求,若功能有问题,需要继续调试程序,反复进行,直到所有功能都满足为止。
5.2.1 系统程序调试
(1)在Keil uVision5软件中先创建一个工程:单击菜单栏中的“工程”,输入新建工程名,并保存;然后单片机型号是“STM32F103”。
(2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名“设计名称.c”,新文件创建完成。
(3)程序编译和调试:单击编译按钮,系统会对文件进行运行,在输出窗口中可看到提示信息,如果有错误信息,则须按提示找出错误并改正,直到提示没有错误且实物功能均符合要求为止(Warning不需要管)。
程序编译无误提示界面图
5.2.2硬件测试
最后一步就是硬件整体测试了,主要运用万用表、直流电源或示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。
一、静态调试,其中静态调试主要分为以下四种:
(1)肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。
(2)使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。
(3)上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。
(4)综合检查测试。这种测试方法只适合单片机开发板开发的系统才能使用这种方法,本文不适宜用这种方法测试。
二、动态调试:
动态调试主要是静态调试没有任何问题,做最后一步检查,就是每个器件能否正常工作,能否满足我系统开发的功能,防止器件内部损坏,影响系统性能。
四年的艰苦跋涉,四个月的精心准备,毕业设计终于到了划句号的时候,心头如释重负,在本论文即将完成之际,谨此向我的指导老师致以衷心的感谢和崇高的敬意!整个毕业设计的过程都是在常老师的悉心指导下完成的,从资料的收集、方案的论证、联板调试以及毕业论文的撰写,何老师、常老师都做了非常细心的指导。老师以他敏锐的洞察力、渊博的知识、严谨的治学态度、精益求精的工作作风和对科学的献身精神给我留下了刻骨铭心的印象,这些使我受益匪浅,将成为我以后工作生活的榜样。
我要感谢电子学院所有给我上过课老师,是他们传授给我方方面面的知识,拓宽了我的知识面,培养了我的功底,对论文的完成功不可没。我还要感谢学院的各位工作人员,他们细致的工作使我和同学们的学习和生活井然有序。
感谢本设计课题组的同学,协作竞争的团队精神是我得以顺利完成毕业论文的重要基础。感谢我们这一组同学在论文相关内容的讨论与合作交流带来的启示和帮助。正是由于我们的精诚合作以及大家设计期间给予我的帮助,良好的团队合作精神为我设计得以顺利完成提供了良好条件。
敲完最后一个字符,重新从头细细阅读早已不陌生的文字,我感触颇多。虽然其中没有什么值得特别炫耀的成果,但对我而言,是宝贵的。它是无数教诲、关爱和帮助的结果。
最后向审阅此文的教授、老师致以深切的敬意。
衷心祝愿母校的明天更加美好!