此帖出自国产芯片交流论坛
最新回复
我看了一下官方代码,你的配置和它的还是有一点区别,你直接使用官方代码能正常运行吗?
/*
******************************************************************************
* [url=home.php?mod=space&uid=1307177]@File[/url] APP.c
* [url=home.php?mod=space&uid=1315547]@author[/url] Xiao Han
* [url=home.php?mod=space&uid=252314]@version[/url] V1.0.0
* [url=home.php?mod=space&uid=311857]@date[/url] 2020
* [url=home.php?mod=space&uid=159083]@brief[/url] OPA demo source code.
******************************************************************************
*/
#include "APP.h"
OPA_HandleTypeDef OPA2_Handle;
OPA_HandleTypeDef OPA3_Handle;
/************************************************************************
* function : OPA_Init_PGA
* Description: OPA Initiation as PGA mode.
************************************************************************/
void OPA_Init_PGA(void)
{
OPA2_Handle.Instance = OPA;
OPA2_Handle.Init.OpaX = OPA2;
OPA2_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA2_Handle.Init.VinPSel = OPA_VINP_0;
OPA2_Handle.Init.OpaMode = OPA_MODE_PGA;
OPA2_Handle.Init.Gain = OPA_GAIN_2_1;
OPA2_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA2_Handle);
OPA3_Handle.Instance = OPA;
OPA3_Handle.Init.OpaX = OPA3;
OPA3_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA3_Handle.Init.VinPSel = OPA_VINP_0;
OPA3_Handle.Init.OpaMode = OPA_MODE_PGA;
OPA3_Handle.Init.Gain = OPA_GAIN_2_1;
OPA3_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA3_Handle);
}
/************************************************************************
* function : OPA_Init_SA
* Description: OPA Initiation as SA mode.
************************************************************************/
void OPA_Init_SA(void)
{
OPA2_Handle.Instance = OPA;
OPA2_Handle.Init.OpaX = OPA2;
OPA2_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA2_Handle.Init.VinPSel = OPA_VINP_0;
OPA2_Handle.Init.OpaMode = OPA_MODE_SA;
OPA2_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA2_Handle);
OPA3_Handle.Instance = OPA;
OPA3_Handle.Init.OpaX = OPA3;
OPA3_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA3_Handle.Init.VinPSel = OPA_VINP_0;
OPA3_Handle.Init.OpaMode = OPA_MODE_SA;
OPA3_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA3_Handle);
}
/************************************************************************
* function : OPA_Init_UG
* Description: OPA Initiation as UG mode.
************************************************************************/
void OPA_Init_UG(void)
{
OPA2_Handle.Instance = OPA;
OPA2_Handle.Init.OpaX = OPA2;
OPA2_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA2_Handle.Init.VinPSel = OPA_VINP_0;
OPA2_Handle.Init.OpaMode = OPA_MODE_UG;
OPA2_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA2_Handle);
OPA3_Handle.Instance = OPA;
OPA3_Handle.Init.OpaX = OPA3;
OPA3_Handle.Init.Hsm = OPA_HSM_HIGH;
OPA3_Handle.Init.VinPSel = OPA_VINP_0;
OPA3_Handle.Init.OpaMode = OPA_MODE_UG;
OPA3_Handle.Init.TrimEn = OPA_CSR_TRIM_DISABLE;
HAL_OPA_Init(&OPA3_Handle);
}
/************************************************************************
* function : OPA_Test
* Description: OPA 1,2,3 enable.
* OPA trim disable.
************************************************************************/
void OPA_Test(enum_TEST_MODE_t test_mode)
{
printfS("OPA Test is Ready!!! \r\n");
switch(test_mode)
{
case TEST_OPA_PGA:
printfS("OPA init as PGA mode. \r\n");
OPA_Init_PGA();
break;
case TEST_OPA_SA:
printfS("OPA init as SA mode. \r\n");
OPA_Init_SA();
break;
case TEST_OPA_UG:
printfS("OPA init as UG mode. \r\n");
OPA_Init_UG();
break;
}
printfS("OPA Inition OK!\r\n");
}
另外Enable函数的问题,我看了一下,在HAL_OPA_Init里已经有 SET_BIT(*gu32RegCrx, OPA_CSR_EN); 对应的操作,所以官方代码是没单独使用HAL_OPA_Enable
详情
回复
发表于 2024-2-13 13:12
| ||
|
||
此帖出自国产芯片交流论坛
点评 | ||||||||||
|
||||||||||
此帖出自国产芯片交流论坛
| ||
|
||
| |
|
|
此帖出自国产芯片交流论坛
| ||
|
||
此帖出自国产芯片交流论坛
| ||
|
||
此帖出自国产芯片交流论坛
点评 | ||
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
|
||
此帖出自国产芯片交流论坛
| ||
|
||
EEWorld Datasheet 技术支持
摘 要:当今,数字时代的核心动力便是单片机,DSP ,PLD/ EDA ,以其各自的特点满足了各种需要,推动着信息技术的快速发展。这里将对 ...
非常不错的资料,与大家分享 欢迎下载:)
由于帖子的不断更新以及论坛的现实篇幅有限,故难免会有一些好贴沉下去而不能发挥余热~~~ 在此特整理汇总全国大学生电子设计竞赛 ...
随着社会的快速发展,我们的生活也越来越方便快捷,它的功劳归功于智能家居。让我们一起来看看我们的生活智能到哪了? 智能家 ...
在伺服电机的控制过程中,使电机能够按照自己的想法转起来,一定要用到PWM输出控制,但是PWM该如何产生,频率如何控制,占空比 ...
使用官方板子hpm6750evkmini,移植成功openmv,全新的Board支持,移植过程中学到不少东西,新鲜玩意就是好。 使用ses工程进 ...
本书面向立志于进行ZigBee无线传感器网络开发的初学者以及向无线网络开发转型的工程师,按照理论实践相结合的思想,介绍了ZigBee ...
时间过得真是快,转眼娃娃会走路讲话了 ●你的2022年是如何度过的 出差60天,游了西湖,桂林,夫子庙,完美躲避了疫情; ...
本帖最后由 乱世煮酒论天下 于 2024-5-16 22:45 编辑 PWM整流滤波单元的参数该怎么选择,网侧滤波器一般是LCL结构,有时还会 ...
IEC61850定义 IEC61850标准是电力系统自动化领域的全球通用标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得 ...