Stm32l071原理图:
PA11
与PA12
连接着UNL2803
ULN2803是一种集成电路芯片,通常被用作高电压和高电流负载的驱动器。
ULN2803是一个达林顿阵列,当输入引脚(IN1至IN8)被连接到正电源时,相应的输出引脚(OUT1至OUT8)将会断开或保持在高阻抗状态。这意味着输出引脚不会提供任何电流或电压输出。当输入引脚被连接到正电源时,通常用于让外部组件(如微控制器或其他逻辑电路)控制输出引脚的状态。如果你想让输出引脚处于活跃状态,你需要将输入引脚连接到地或负电源。
当PA11
与PA12
输入高电平,其对位引脚REALY1
和REALY2
输出就为低电平,反之输入为低,输出就为高
当REALY1
和REALY2
输出为低电平,继电器Relay
导通其对位的K1
、K2
就会导通LD2
、LD3
发光,反之继电器处于释放状态,那么K1
、K2
断开,灯熄灭
CubeMX配置:
Function.c及Function.h:
#include "Function.h"
#include "gpio.h"
void Function_LD5_ON(void){
HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET);
}
void Function_LD5_OFF(void){
HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_SET);
}
void Function_LD5_Toggle(void){
HAL_GPIO_TogglePin(LD5_GPIO_Port, LD5_Pin);
}
void Function_K1_ON(void){
HAL_GPIO_WritePin(K1_GPIO_Port, K1_Pin, GPIO_PIN_SET);
}
void Function_K1_OFF(void){
HAL_GPIO_WritePin(K1_GPIO_Port, K1_Pin, GPIO_PIN_RESET);
}
void Function_K1_Toggle(void){
HAL_GPIO_TogglePin(K1_GPIO_Port, K1_Pin);
}
void Function_K2_ON(void){
HAL_GPIO_WritePin(K2_GPIO_Port, K2_Pin, GPIO_PIN_SET);
}
void Function_K2_OFF(void){
HAL_GPIO_WritePin(K2_GPIO_Port, K2_Pin, GPIO_PIN_RESET);
}
void Function_K2_Toggle(void){
HAL_GPIO_TogglePin(K2_GPIO_Port, K2_Pin);
}
#ifndef __FUNCTION__
#define __FUNCTION__
void Function_LD5_ON(void);
void Function_LD5_OFF(void);
void Function_LD5_Toggle(void);
void Function_K1_ON(void);
void Function_K1_OFF(void);
void Function_K1_Toggle(void);
void Function_K2_ON(void);
void Function_K2_OFF(void);
void Function_K2_Toggle(void);
#endif
main函数:
while (1)
{
Function_K1_Toggle();
Function_LD5_Toggle();
Function_K2_Toggle();
HAL_Delay(300);
}
效果:
K1-LED、K2-LED、LD5持续亮灭
原文地址:https://blog.csdn.net/xyint/article/details/134564606
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_14466.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。