[嵌入式实验]实验四:串口打印电压及温度

一、实验目的

  1. 熟悉开发环境
  2. 在开发板上读取电压和温度信息
  3. 使用串口和PC通信在PC上输出当前电压和温度信息

二、实验环境

硬件:STM32开发板、CMSIS-DAP调试工具

软件:STM32CubeMX软件、ARM的IDE:Keil C51

三、实验内容

  1. 配置相关硬件设施

(1)电压配置:因为电源 ADC 引脚为 PF10,使用 ADC3 的通道 8,原理图如图所示,而stm32 内部 的 1.2V 校准电压 Vrefint 在 ADC1 中,如图1所示。

图 1

在 cubeMX 中开启 ADC1,在设置中将 Vrefint Channel 勾选,用于读取内部参考电压。

ADC 在 cubeMX 中的设置如图采样频率设置为 PCLK2/4,采样位数为 12 位,数据设

置为右对齐,其余均保持默认。在 cubeMX 中开启 ADC3,并打开其 IN8 用于电池电 压的读取,其设置和 ADC1 一致。

(2)串口配置:在 Connectivity 标签页下将 USART1 打开,将其 Mode 设置为 Asynchronous 异步通讯方式。接着将其波特率设置为 115200,数据帧设置为 8 位数据位,无校验位,1 位停止位。同样地,打开 USART6,将其以和 USART1 同样的方式进行设置。接着前往NVIC 标签页下,开启 USART1 和 USART6 的中断。

2.实验代码

(1)通过uint32_t Read_ADC(ADC_HandleTypeDef* hadc)函数来读取ADC值,获取模拟信号的数字化表示,如图2所示。

(2)通过float Convert_ADC_To_Voltage(uint32_t adc_value)函数和float Convert_Voltage_To_ Temperature(float voltage)函数从ADC获取电压和温度数据,如图2所示。

(3)在main函数的while循环中读取ADC值并通过串口发送数据,如图3所示。

图 2

图 3

3.实验结果

打开串口调试助手,选择usb串行设备,设置波特率为115200,并点击"打开串口"操作,运行程序后可以看到在窗口中接收到电压和温度信息,如图4所示,可以看到打印的电压是1.23V,打印的温度是29.41,根据打印出的数据可以看到温度在实时发生变化。

图 4

实验小

1.实验中出现的问题

(1)在实验中发现,开发板的六号接口(&huart6)可以正常输出,一号(&huart1)不能输出结果,所以运行后,在串口调试助手中显示的是六号接口的数据,如图5所示。

图 5

(2)运行程序时出现错误无法输出数据,修改配置顺序按图6所示

图 6

2.总结与体会

本次实验通过串口打印电压和温度数据,实现STM32的串口通信。串口是嵌入式中非常重要的一个外设。将串口作为调试接口,把开发板的调试信息打印到PC端的串口助手,可以极大地方便调试工作。

相关推荐
史蒂芬_丁1 分钟前
EPWM Global Load
单片机·嵌入式硬件
碎像3 分钟前
单片机-数码管显示
单片机·嵌入式硬件
LCMICRO-1331084774610 小时前
长芯微LPS123完全P2P替代ADP123,高性能、低压差的线性稳压器
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·线性稳压器
守护安静星空11 小时前
esp32开发笔记-工程搭建
笔记·单片机·嵌入式硬件·物联网·visual studio code
ACP广源盛1392462567312 小时前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
时空自由民.13 小时前
ST7701S 3.5寸显示屏
单片机
金戈鐡馬13 小时前
BetaFlight中的定时器引脚绑定详解
stm32·单片机·嵌入式硬件·无人机
Wave84514 小时前
FreeRTOS软件定时器详解
stm32·单片机·freertos
VBsemi-专注于MOSFET研发定制15 小时前
奶茶制作机器人功率MOSFET选型方案——高效、精准与可靠驱动系统设计指南
单片机·嵌入式硬件
水云桐程序员16 小时前
单片机项目从入门到精通
单片机·嵌入式硬件