This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我将使用 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 引脚发送信号...
这可能是完全错误的-任何和所有的建议都是有帮助的!
您好、Jacob:
我很抱歉,我将在4月14日离开办公室,在我回到办公室后,我会帮助你。 如果您的问题紧急、您可以设置新帖子、我们的美国同事将在24小时内帮助您并回复您。
此致、
K·扬茨
我不太确定你的目标。
如果您的目标是返回到 while (1)的顶部、您只需使用"继续"(如果需要、甚至可以使用"转至")即可。
如果您的目标是从一开始就启动 main(),重新初始化所有全局变量,软件可以生成重置,例如使用"WDTCTL=0;"。
可以将 RST 连接到按钮(Launchpad 有一个)。 使用 GPIO 进行驱动似乎很长一段时间。
我的目标是返回到 while 的顶部-不一定是 BOR/完全复位、BOR 会清除我所有的 GPIO 设置、对吗?
我从未使用过"Continue"或"goto "-我会研究这些。
此外、我花了一些时间阅读 MSP430FRxx 用户指南、 特别是关于第1.2节"系统复位和初始化"中的复位子部分-我 还没有完全了解在我的第三个 if 语句中要处理哪些位、但我认为该部分中的某些内容对于控制某种类型的复位会很有用。
您好、Jacob:
如果您使用 RST 引脚重置设备,它将从一开始启动 main (),并且所有全局变量均已重新初始化,Bruce 是正确的。 Jacob、您的问题现在已经解决了吗?
此致、
K·扬茨
是的、这很合理。
数据表中提到了相同的内容、总结所学内容有助于巩固这种理解。
你碰巧知道一些可以启发我这些好资源吗?
我有初级 C 级编码背景,所以任何种类好的数据库来学习这些都很棒-书籍,网站等。
您好、Jacob:
如果想要获得 MSP430的一些资源、可以从 TI.com 下载 SDK、这是 MSP430应用的示例代码。 您还可以从 TI.com 获得有关 MSP430的其他软件或文档资源。
此致、
K·扬茨