一:实验目的
1.掌握ADC的基本原理和工作方式:了解如何使用ADC将模拟信号转换为数字信号,以及如何设置ADC的参数。
2.学习串口通信的基本知识:了解串口通信的原理、波特率、数据格式等相关概念,并能够通过串口与外部设备进行通信。
3.理解电压检测与显示的过程:了解如何通过ADC进行电压采集,将采集到的电压值转换为合适的数据格式,并通过串口发送到串口屏上进行显示。
二:实验原理
1.模拟电压:设置滑动变阻器调整模拟电压,范围为0-3.3V。
2.ADC采集: ADC(模数转换器)是一种将模拟信号转换为数字信号的电子设备如图1所示。整个工作流程分为四步采样、量化、编码、输出。
图1 简易ADC装置示意图
本次实验使用单独ADC采样,数据右排序,不使用外部触发。另外,Stm32的ADC采样有两个参数决定采样模式,单次或连续采样以及扫描或非扫描模式。由于需要连续读取模拟电压值使用连续采样,并且考虑到每次输入电压值为单个数据使用非扫描模式。模拟信号转数字信号范围为0-4095。
3.串口通信:在程序仿真中,需要加载模拟串口代替实际串口,这里用到了Configure Virtual Serial Port Driver和 ATK_XCOM分别构建虚拟串口和模拟发送。通讯协议选择UART,波特率为115200。
4.OLED显示屏:用于对照验证串口通信的数据是否正常传输。检查ADC模拟型号转为数字信号的过程是否正常。
三:实验内容
1.程序逻辑:
(1)硬件驱动程序: ADC采集安装实验原理定义对应结构体参数。定义OLED接口为PB8与PB9,编写命令发送、数据传、初始化等驱动。
(2)系统程序: 调用stdio.h,编输译usart通信协议,包括定义波特率,奇偶验证,数据位等。
(3)主函数: 分别在OLED和串口屏显示结果。
2.电路仿真:
图2 电路原理图
四:实验小结
理解ADC工作原理:通过本次实验,深入了解了ADC的工作原理和使用方法。了解了如何配置ADC参数,选择合适的参考电压和分辨率,并使用适当的转换方式来采集模拟信号并转换为数字值。
串口通信应用:通过串口传输采集到的数据至串口屏,掌握了串口通信的基本概念和操作方法。学习了如何设置串口的波特率、数据位数等参数,并使用串口通信函数将数据发送给外设,实现实时的数据显示。
错误处理和调试能力:在实验中,遇到了一些问题,如错误的采样结果或数据传输问题。这锻炼了我解决问题和调试的能力。了解了如何添加错误处理机制,识别校验错误或超时情况,并通过调试工具和监视器进行故障排查。