对于高职教师来说,必不可少的一个任务就是参加企业实践。这个暑假,本人也没闲着,报名参加了上海市电子信息类教师企业实践。7月8日到13日,有幸来到美丽的泉城济南,远离了上海的酷暑,走进了百科荣创科技发展有限公司。在这短短的一周时间里,我结合自己的教学经验和企业的需求,对一个简易函数信号发生器的嵌入式项目做了教学内容的转换。接下来,就用博客的形式,把这次转换后的成果分享出来,如果您觉得有用,还望多多点赞和转发!
针对本项目,笔者根据自己的理解,力求做到循序渐进和逐步深入,计划用6篇文章来展开,本文是第一篇,先从整体上对本项目有个大致的了解。
一、任务概述
1.1 项目效果演示
项目的整体效果如下面的视频所示,基于百科荣创的STM32F407核心板,实现了一个简易的函数信号发生器,可以输出三角波、锯齿波、正弦波和方波,可以通过按键调整波形的类型、幅度和频率,并在屏幕上呈现信号的基本信息和按键控制信息。
用STM32捣鼓了一下函数信号发生器,可以调整波形的种类、幅度和频率
这里先声明一点,该工程的源码是百科荣创的工程师写的,本人只是站在一个教师的角度,把这个工程项目做了必要的分解和加工,形成一份循序渐进的教程,以帮助知识和技能尚不完备的嵌入式学习者。
1.2 硬件、配件与仪器
图1和图2是本项目开发过程中用到的硬件、配件以及仪器,核心板上的主控芯片是STM32F407IGT6,显示屏是3.5寸的触摸屏(主控芯片为ILI9486),示波器品牌为优利德,型号是7102C。
1.3 重点与难点
使用微控制器做信号发生器,最核心的就是DAC的控制,这也是本项目的重点。至于难点,个人觉得应该在信号变化规律的控制、按键的交互以及屏幕上UI界面的设计。在接下来的内容中,本人将逐步累加和迭代,由易到难的实现每个功能。
1.4 工程文件清单
图3是本项目的工程文件清单,重点关注的是DAC驱动代码和主程序代码的编写,显示屏、按键、LED这些驱动文件不做解读,后续将直接调用其驱动。
1.5 任务推进流程
笔者根据自己的理解认知和教学经验,将本项目分成了如下5个子任务来逐步推进:
- DAC基本输出(仅使用按键,单纯控制DAC输出指定的电压,用万用表测量)
- DAC输出三角波(加上定时器来触发DAC)
- DAC输出正弦波(加上了DMA搬运DAC数据,用按键切换波形)
- 部署UI界面(在屏幕上显示必要的波形信息)
- 加上频率和幅度控制(可以用按键对波形的频率和幅度进行加减)
(第一部分完,共六部分)