大家好、
我将使用 MSP-EXP430FR5969 Launchpad 开发板进行一些测试、我最终需要将"RST"引脚连接到设计中的外部按钮、 为了从无限 while 循环的开始重置代码、所以我想通过使用板载开关 P1.1作为输入来对其进行测试-使用此输入、我想控制一个 I/O 引脚、P4.3作为临时的"触发器"、 该引脚通过跳线连接到 LaunchPad 板载的"RST"引脚。
我的目标是使用该开关 P1.1触发 GPIO 4.3、从而向"RST"引脚发送伪逻辑低电平、从而基本上跳回无限 while 环路的开头。
以下是我的代码的相关片段:
#include "io430.h"
#define 开关 P1IN_BIT.P1IN1
#定义 CLK P3IN_bit.P3IN0
#define reset_trigger P4OUT_BIT.P4OUT3
#定义引脚1 P3OUT_BIT.P3OUT4
#define PIN2 P1OUT_BIT.P1OUT3
#define PIN3 P1OUT_BIT.P1OUT4
#define PIN4 P1OUT_BIT.P1OUT5
内部 主函数( 空 )
{
WDTCTL = WDTPW + WDTHOLD; //禁用 WDT。
PMMCTL0 = PMMPW; //打开 PMM。
PM5CTL0 &=~μ A LOCKLPM5; //清除 LPM5/锁定 IO 引脚。
...
...
P1DIR_BIT.P1DIR1 |= 0;
P1REN_bit.P1REN1 = 1;
P1OUT_bit.P1OUT1 = 1; //与上述2行代码一起、配置开关(P1.1)以具有上拉电阻。
P4DIR_BIT.P4DIR3 |= 1; //将 P4.3配置为输出。
P4OUT_bit.P4OUT3 |= 1; //将 P4.3从开始配置为逻辑高电平。
...
...
...
同时 (1)
{
如果 (CLK =1 &&状态=0)
{
如果 (引脚选择=0)
{
引脚1 = 1;
状态= 1;
}
否则、如果 (引脚选择=1)
{
引脚2 = 1;
状态= 1;
}
否则、如果 (引脚选择== 2)
{
引脚3 = 1;
状态= 1;
}
否则、如果(pinSelect =>= 3)
{
引脚4 = 1;
状态= 1;
}
}
如果 (CLK =0 &&状态=1)
{
如果 (引脚选择=0)
{
引脚1 = 0;
状态= 0;
引脚选择++;
}
否则、如果 (引脚选择=1)
{
引脚2 = 0;
状态= 0;
引脚选择++;
}
否则、如果 (引脚选择== 2)
{
引脚3 = 0;
状态= 0;
引脚选择++;
}
否则、如果 (引脚选择== 3)
{
引脚4 = 0;
状态= 0;
引脚选择= 0;
}
}
如果 (开关=0)
{
P4OUT_bit.P4OUT3 = 0;
}
} //end while 循环。
} //结束主循环。
我的用例是这里有3条主要的 IF 语句、我的目的是 按下按钮来复位 while 环路、因此我想尝试使用其中一个板载开关按钮 来控制 GPIO 引脚以向 RST 引脚发送信号...
这可能是完全错误的-任何和所有的建议都是有帮助的!