自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 STM32F407三重ADC配置

#include "adc.h"#include "stm32f4xx.h"__IO uint16_t ADC_ConvertValue[3]={10,10,10};//定义一个数组存储数字电压,ADC_ConvertValue[0]存储ADC1的数据,ADC_ConvertValue[1]存储ADC2的数据//一定要配置为16位的数据,因为每一次传输的数据都是16位半字的 //ADC引脚功能配置-----PB组的引脚存在问题,具体我也不太清楚为什么sta

2020-07-19 22:22:29 2661 4

原创 简易功率测量仪的综合调试

一、电流校准在设计电路中,电流的测量方法采用的是欧姆定律I=U/R来计算的,U为已知小电阻两端的微小电压,R为已知小电阻,通过STM32内置ADC采集已知小电阻两端的电压,就能得到负载所在电路的电流值。示意图如下:但是我们测量时发现,使用该电阻阻值代入公式计算出来的电流值与仪器检测得到的电流值是大相径庭的,于是我们就联想到电路中的导线也是有内阻的,如果想仅仅通过这个公式死算出来结果,就必须把电路中的导线等只要有电阻的元器件的电阻值都找出来,才能计算出准确的电流值。显然这样子算是不行的。先看下面示意图

2020-07-19 22:17:10 756

原创 优化----简易功率测量仪显示波形

对前面做的基于UCGUI的简易功率测量仪进行了优化,由于UCGUI资料不够,无法解决之前的问题,所以我选择了一个新的GUI程序----LittleVGL来编写波形显示函数,该GUI功能强大,而且市面上的资料也比较齐全,所以使用起来还是非常顺手的,显示也非常迅速。

2020-07-08 15:55:55 2994 6

原创 简易功率测量仪(三)代码分析-显示数据

这一节我们接着上节的内容,讲第二个层面:2、将处理好的数据显示在LCD上,并用曲线表示出P的变化。这一节的功能实现可以说是整个代码编写中最难实现的部分了,如果我们要自己实现波形显示函数的画,涉及到的代码量就比较大了,幸运的是我们有GUI程序的帮助,哈哈,这就大大减少了我们的代码量,自己写波形函数真的能把人写死。在我的程序中,我移植的是UCGUI的V3.90版本,版本有些低,这是因为我在网络上找到的只有这个版本的移植教程,所以就用这个了。在UCGUI里面,有现成的数值显示函数,函数曲线绘制函数(用这个来画

2020-07-06 17:01:38 730

原创 简易功率测量仪代码解析(二)代码分析-数据处理

代码结构分析在分析完电路的基础上,我主要把代码分为两个层面。1、ADC采样后的数据处理。算出P、I、U。2、将处理好的数据显示在LCD上,并用曲线表示出P的变化。这一节主要讲第一个层面,也就是:1、ADC采样后的数据处理。算出P、I、U。首先是配置ADC,由于我们要采样两个不同的电压,所以使用双重ADC采样。关于双重ADC采样,细讲起来太多了,可以去参考网上其它大佬和公众号给出的介绍,这里我给一个配置代码和过程分析。我们使用ADC1的通道11(对应STM32ZET6的PC1引脚)采集电源电压,使用

2020-07-06 15:32:10 801

原创 简易功率测量仪代码解析(一)题目要求分析

先上效果图方波正弦波锯齿波由于ADC不能测量负压,所以在负压的部分它会自动计算为0。因此在这个波形显示界面中,只能显示半个波形。对于简易的一个功率测量仪,它的设计思路是什么呢?我们先来看一到电赛题,这个简易的功率测量仪就是按照这道电赛题的要求来写的。分析题目,可以知道,我们要测的就是三个值,电压,电流,功率。电压要测负载的电压,电流要测负载所在电路的电流电压,功率要测负载的功率。由初中物理公式我们可以知道,I=U/R,只要知道其中任意两个值,我们就能够算出想要的那个值。使用的STM32单片机中

2020-07-06 14:58:17 890 3

原创 STM32-仿真调试时的SystemInit死循环

STM32-仿真调试时的SystemInit我在开始STM32的仿真调试时,遇到一个问题,就是调试时程序一直停在SystemInit()中的等待晶振中,怎么也出不来。SystemInit()前面部分的代码,都能走过,就是在执行到最后一个函数时出问题了。最后一个函数是:SetSysClock();执行到下面这个循环之后,出不来了:/* Wait till HSE is ready and if Time out is reached exit */do{HSEStatus = RCC->

2020-07-06 11:26:25 5309 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除