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

一、实验目的

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

相关推荐
威嵌神州9 小时前
国产化便携式加固终端选型|加固平板、手持终端产品谱系解析
嵌入式硬件·平板
HQB202610 小时前
LTK8324|单通道 H‑桥有刷直流电机驱动器 ESOP‑8
嵌入式硬件·硬件工程
硅基手札10 小时前
【I2C 技术系列 08】I2C 控制器寄存器与 IP 架构
驱动开发·stm32·单片机·嵌入式硬件·mcu·架构·计算机外设
新晨单片机设计10 小时前
S027A-基于STM32单片机模拟电梯控制系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·模拟电梯
endeavor1210 小时前
CAN总线
stm32·单片机·can
SKH.10 小时前
Linux驱动-led、beep
linux·运维·单片机
2601_9507906811 小时前
国产单片机厂家推荐:英锐恩8位MCU系列、外设资源与应用选型对照
单片机
深圳市恒锐丰科技杨生11 小时前
# HT3310|集成锂电池充电 + 三档电机驱动控制芯片 SOT23‑6
嵌入式硬件·硬件工程
北京盛世宏博12 小时前
异地机房采集踩坑笔记:以太网温湿度记录仪跨网段通信调试实战
开发语言·笔记·单片机·php·传感器·温湿度
FakeOccupational13 小时前
【电路笔记 STM32】Cortex-M7 UART DMA模式(DMA&空闲中断&普通模式+DMA&半满/全满中断&循环模式)
笔记·stm32·嵌入式硬件