stm32 如何控制开发板上用8550三极管驱动的继电器

#include"stm32f10x.h"#define_BV(n)(1<<(n))#defineK1GPIO_ReadInputDataBit(GPIOB,GPIO_P... #include "stm32f10x.h"#define _BV(n) (1 << (n))#define K1 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)#define K2 GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)// 延时函数void delay(){ uint32_t i; for (i = 0; i < 20000; i++);}int main(void){ GPIO_InitTypeDef init; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 开启PB时钟 // PB8~15为输出 init.GPIO_Pin = 0xff00; init.GPIO_Speed = GPIO_Speed_50MHz; init.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &init); // PB0~7为输入 init.GPIO_Pin = 0x00ff; init.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOB, &init); while (1) { // 当按键1按下时 if (!K1) { delay(); if (!K1) { GPIOB->ODR ^= _BV(8); // 反转继电器所在引脚的电平 while (!K1); } } }}无论怎么写都不行。。。。三极管始终导通,继电器始终都是吸合状态。同样的代码用来开关LED都没有问题啊 展开
 我来答
WXS732
2020-08-18 · 超过26用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:14.6万
展开全部
实际测试了一下,
32驱动一个三极管确实存在 无法驱动继电器的情况。
测试E 极 电压 只有2.5V 这样来驱动一个DC5V 的继电器就无法开启和闭合
就是改变IO 的驱动方式 (上拉 下拉 )也没有改变。
这是前段时间,回复的, 如果想通过三极管 用STM32 来控制的话 ,一定把 三极管放在继电器的下方。 为什么这样, 因为下面电压降 降低了,低于3.3V 就可以通过 IO控制了
babytaomail
2016-05-15 · 知道合伙人软件行家
babytaomail
知道合伙人软件行家
采纳数:429 获赞数:1130
某公司嵌入式开发工程师; 熟悉VC++/C/MFC,Linux驱动,STM32,FPGA,Allegro/Pads及硬件电路设计

向TA提问 私信TA
展开全部
LED正常?VCC几伏?IO几伏?先用万用表测C极电压,看开和关时的电压是为VCC和0;测B极电压,是否正常?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式