从‘0’开始完成一个阻抗分析仪(中篇——初始化,基于CUBEMAX G431RB)

这是一个卑微电子信息学员的开始
哦 现在是通信
4月5日工作记录

这是学习stm32的第n天

卑微通信学员开始了stm32的学习过程。

从‘0’开始完成一个阻抗分析仪

怎么说呢,这种东西会者不难
不会嘛,就像我绝望了好久,别说了

如何理解阻抗分析仪的原理

我决定另起一篇写 有点难度(链接还在我脑子里)。
后面的是各种操作,反正你一步步做就是对的。
有问题不懂看下面这篇博客。

给我划重点!!

这里先说明CUBEMAX的操作,这样操作的好处和原因解释在后面。

CUBEMAX操作

在这里插入图片描述

1配置时钟和SW
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2ADC配置
ADC1开启IN12,独立输入,同时IN12的引脚会作为OPAMP的输出,点击对应的引脚就可以设置。
在这里插入图片描述

在这里插入图片描述

3DAC配置
DAC1作为输入信号源,timer15触发,采样频率1M。开启DMA循环模式,DMA中断优先等级中级。
在这里插入图片描述
在这里插入图片描述
DAC3向OPAMP正输入提供VCC/2的电压。软件触发,开启DMA循环模式,DMA中断优先等级低。
在这里插入图片描述
在这里插入图片描述

4OPAMP配置
独立工作模式并用DAC3channel2的输出作为正输入,与前面对应。别的不用做多的设置。
在这里插入图片描述

5GPIO配置(我将数据放到显示屏上进行显示)
随便配置两个引脚就完事。
在这里插入图片描述

关于ADC的相关配置

重点就在于IN12是一个复用引脚(少引出一根导线),这样操作可以提升阻抗分析仪的精准性。

关于DAC的相关配置

重点在于DAC3是一个内部的输出,选用out2作为OPAMP的正输入。这样直接可以少引出一个引脚,同时做到了最短距离连接和稳定性。

关于OPAMP的相关配置

重点在于OPAMP使用独立工作模式并用DAC3channel2作为正输入,与前面提到的相对应。

关于显示屏的相关配置

去看这篇博客
https://blog.csdn.net/mohaoyuan/article/details/115269883
写过的东西绝不做第二遍

将所有配置串联起来

好了,现在准备过程都完成了,要开始的就是纯代码的操作了。

完成DAC的初始化

对DAC1out1的初始化:

	//DAC1 ch1 start&&wave
	HAL_DAC_Start(&hdac1, DAC_CHANNEL_1);	
	Coswave_Maker(ffv,POINT_NUMBER,2);
	HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_1,(uint32_t *)coswave,POINT_NUMBER,DAC_ALIGN_12B_R);

其中Coswave_Maker是我的自制函数,生成对应点数和幅度的余弦波,然后就按部就班。

对DAC3out2的初始化:

	//DAC3 ch2 start
	HAL_DAC_SetValue(&hdac3, DAC_CHANNEL_2, DAC_ALIGN_12B_R, 2048);
	HAL_DAC_Start(&hdac3, DAC_CHANNEL_2);

就输出VCC/2就可以了。

完成OPAMP的初始化

	//OPAMP3 start
	HAL_OPAMP_Start(&hopamp3);
	HAL_OPAMP_SelfCalibrate(&hopamp3);

最后一句话是对OPAMP的自校准

完成ADC的初始化

	//ADC1 start
	HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
	HAL_Delay(100);

第二句是ADC的自校准。第三局给它时间等待校准完成

完成TIMER的初始化

	//timer 15 start
	if (HAL_TIM_Base_Start(&htim15) != HAL_OK)
  {
    /* timer start error */
    Error_Handler();
  }	

完成LCD的初始化

	//LCD start
	OLED_Init();			
	OLED_Clear(); 
//	OLED_ShowString(0,0,"range",8);
//	OLED_ShowString(0,2,"phase",8);
	OLED_ShowString(0,0,"Rc",8);
	OLED_ShowString(0,2,"Cc",8);
	OLED_ShowString(0,4,"Rb",8);
	OLED_ShowString(0,6,"Cb",8);

到这里初始化和最开始的配置就完成了,感觉写了很多了,再另起一篇博客继续。
本文仅供学习使用,禁止一切转载或调用,最终解释权由作者本人享有。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值