RoboMaster开发板A型24V输出电压开启

众所周知,当给A板供电的时候,最外圈四个输出接口的电压是0,找了很久也没有系统解释,今天在这里总结一下(文末附程序源码)。A板
首先要明白为什接电后电压为0:
这个答案在A板的用户手册里面,我将截图放在下面。
用户手册
从表格说明里面可以看出,该电源输出接口是使用程序开启的,如果程序里面没有写“开启代码”,这四个接口的输出电压就是0。在用户手册后面也有交代。
在这里插入图片描述
(图片看不清没关系,这里只是展示一下,后面会有详细讲解)
具体的电路实现在原理图的第七页,我们以左上接口为例进行讲解 (其他的大差不差,改改参数就好了)。
在这里插入图片描述

从图中我们可以看出,编号J20的接口要使能PH2开启。那么问题来了,J20到底是哪个?这时候就要拿出我们的位号图了。从位号图中可以得到四个接口的编号。由于原理图截图放上来很乱,我就直接把四个接口标出来了。
在这里插入图片描述
这个时候我们回到原理图,从原理图里可以看出来当引脚置于高电平时24v输出电压开启,即输出高电平时电路导通。其他四个同理。
程序源码:
标准库(省略一些小细节,只写主体部分)

//.c文件部分
void J20_Init()
{
    
    
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE); 	//使能PORTA时钟
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;	//速度100MHz
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     //推挽输出
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;       //上拉
	GPIO_Init(GPIOA,&GPIO_InitStructure);             //初始化PH2
	GPIO_SetBits(GPIOH,GPIO_Pin_2);                  //设置引脚为高电平
}

//.h部分
#define POWER1_CTRL PHout(2) //这个地方不是必需,当引脚为高电平,即POWER1_CTRL=1时开电

HAL库:

#define POWER1_Pin GPIO_PIN_2
#define POWER1_GPIO_Port GPIOH

......
//高电位供电
HAL_GPIO_WritePin(GPIOH, GPIO_PIN_2, GPIO_PIN_SET);

//低电位断电
HAL_GPIO_WritePin(GPIOH, POWER1_Pin, GPIO_PIN_RESET);

猜你喜欢

转载自blog.csdn.net/weixin_45850927/article/details/121391969