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

一、实验目的

  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端的串口助手,可以极大地方便调试工作。

相关推荐
时空自由民.6 分钟前
无人机系统耗电,低功耗管理问题解决方法(chatgpt)
单片机·嵌入式硬件·无人机
时空自由民.11 分钟前
无人机系统耗电,低功耗管理问题解决方法(腾讯元宝)
单片机·嵌入式硬件·无人机
清风6666661 小时前
基于单片机的双档输出数字直流电压源设计
单片机·mongodb·毕业设计·nosql·课程设计
牛马大师兄2 小时前
STM32独立看门狗IWDG与窗口看门狗WWDG知识梳理笔记
笔记·stm32·单片机·嵌入式硬件·嵌入式·看门狗
夜月yeyue2 小时前
STM32 Flash 访问加速器详解(ART Accelerator)
linux·单片机·嵌入式硬件·uboot·bootloard
A9better2 小时前
嵌入式开发学习日志37——stm32之USART
stm32·嵌入式硬件·学习
国科安芯6 小时前
ASP4644芯片低功耗设计思路解析
网络·单片机·嵌入式硬件·安全
充哥单片机设计6 小时前
【STM32项目开源】基于STM32的智能厨房火灾燃气监控
stm32·单片机·嵌入式硬件
CiLerLinux13 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
时光の尘13 小时前
【PCB电路设计】常见元器件简介(电阻、电容、电感、二极管、三极管以及场效应管)
单片机·嵌入式硬件·pcb·二极管·电感·三极管·场效应管