实验2: MCU时间实验¶
这次实验,目的在于熟悉C语言在嵌入式开发中的使用,学习如何通过串口输出数据给PC,理解如何用C语言操纵MCU的时间。
本实验配有 实验指南 。
实验目的¶
- 熟练掌握编写MCU程序的一般方法;
- 掌握PC上的串口软件,掌握MCU串口程序编写方法;
- 掌握MCU的中断响应程序编写方法;
- 熟练掌握MCU的时钟中断配置和时钟中断程序响应程序的编写方法;
- 掌握MCU程序的定时和获得时间的方法(采用SysTick和定时器中断两种方法)。
实验器材¶
硬件¶
较实验1增加一块USB转串口模块(CP2102)。
软件¶
较实验1增加合适的串口软件,如PuTTY(Windows)、picocom(Linux、macOS)。
实验步骤¶
此为实验报告的整体步骤,具体的实验步骤请参考 实验指南 。
- 恢复实验1的连线和程序;
- 编写程序,从串口以轮询方式输出“Hello World”;
- 编写程序,从串口输出测量到的按钮按下到抬起的时间长度(同样要注意去抖动);
- 编写程序,从某个GPIO口输出方波;
- 组内两位同学交叉连线,一位同学的MCU输出脉冲,另一位同学的MCU测量这个脉冲的高电平时间长度(注意两块板子要共地)。
扩展内容¶
- 在轮询之外,用中断、DMA两种方式来输出串口数据;
- 用引脚中断来处理按钮和测量时间;
- 试探能够测量的最小脉冲宽度。
实验报告要求¶
此为实验报告的整体要求,具体的实验步骤请参考 实验指南 。
- 画出你所实际实施的连接示意图;
- 给出实际拍摄的板卡连接照片;
- 给出所用的器材的列表;
- 给出实验各步骤的源代码和实验结果;
- 说明其他所做的扩展内容的情况。
验收要求¶
- 现场烧录程序,实现在串口输出测量到的按钮按下到抬起的时间长度(使用SysTick或TIM均可);
- 现场烧录程序,实现在某个GPIO口输出方波,另一位同学的MCU测量脉冲的高电平时间长度。若单人验收,可以使用逻辑分析仪或者示波器来进行测量。
- 回答与实验内容相关的问题。