Ardunio编程时务必注意定义引脚的输出方式

今天在编写Stm32 Ardunio控制L6203时发现的引脚信号输出导致STM32死机。
在这里插入图片描述
ARDUNIO 引脚定义如下

#define Speeker_Out PB15 //蜂鸣器信号输出数字引脚38
#define DCREALY_ON PB14 //输出信号继电器低电平打开 高电平时断开继电器
#define DCMotorer_EN PA7 //L6203-PIN(11) ENABLE 高电平有效
#define L6203_IN1 PB0 //L6203-PIN(5) IN1
#define L6203_IN2 PA6 //L6203-PIN(7) IN2
#define BOARD_LED_PIN PC13 //定义板载LED(呼吸灯,运行中信号)为数字引脚

实际编写时将引脚的输出信号类型搞错了

void Stop_DC_Motor() { //停止直流马达
analogWrite(L6203_IN1, 0);
analogWrite(L6203_IN2, 0);
analogWrite(DCMotorer_EN, LOW);
delay(500);
digitalWrite(DCREALY_ON, HIGH); //高电平时中断对电机的能量供应

digitalWrite(Speeker_Out, HIGH);
delay(200);
digitalWrite(Speeker_Out, LOW);
}

只要执行停止马达信号输出刚开始没什么问题,但多执行几次就死机了。检查了大约2个小时才发现本该是digitalWrite(DCMotorer_EN, LOW);写错了。
虽然问题找到,但没有深入了解为什么有时确能正确执行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值