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

一、实验目的

  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 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
深圳老胡1 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡1 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
梅梅9661 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛1 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅1 天前
day47
arm开发·经验分享·笔记·嵌入式硬件
恒锐丰科技林技术员1 天前
EG1164 高压大电流升压同步整流芯片解析
经验分享·嵌入式硬件·硬件工程
CHENKONG_CK1 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
祖力551 天前
ARM时钟
嵌入式硬件·arm·时钟·imx6ull