我使用的是 Tiva Launchpad。 我成功地解锁了 PF0、完成了一项简单的任务、即通过 sw0 (PF0)打开和关闭 LED。 但是、当我将该配置附加到我的现有工程时、它不起作用。 在我的当前项目中、我使用 PF4启动设置模式并更新设置(结束设置模式)。 在设置模式中、我使用 PF0来增加计数并将计数倒放至 LCD。 这是我的代码。 我的代码中是否有任何对 PF0的影响?
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.
我使用的是 Tiva Launchpad。 我成功地解锁了 PF0、完成了一项简单的任务、即通过 sw0 (PF0)打开和关闭 LED。 但是、当我将该配置附加到我的现有工程时、它不起作用。 在我的当前项目中、我使用 PF4启动设置模式并更新设置(结束设置模式)。 在设置模式中、我使用 PF0来增加计数并将计数倒放至 LCD。 这是我的代码。 我的代码中是否有任何对 PF0的影响?
您好、Charles、
我已经回答了这张海报中的类似问题-也许我也可以在这里提供帮助...
海报的代码块如下:
void SW0Task (void)
{
if (!GPIOPinRead (GPIO_PORTF_BASE、GPIO_PIN_0)
){
if (SW4Install = 1)//测试# 1
{
Count++;
int a、b;
if (Count<10)
{
SetCursor _LCD (1、10);
LCD_DATA ('0');
0x30+LCD_A
(
1、000+100)
;LCD_Data=0x30);LCD_A (1、000+20_A);LCD_A (1、000+20_A);LCD_A (1、000+20_A);LCD_A (1、000+100 (1、000+100);LCD_
}
}
您的代码是否达到我确定的"测试#1"点? 如果是-您的代码已正确检测到 PF0。
您(真的)是否确定引脚 PF0连接到 LPAD 上的开关? (我似乎还记得、由于 PF0 (非传感器) NMI 默认值、因此避免了它) [好的!]
请注意、LPAD 的开关 或您的"用户提供的开关" 可能会抖动、这将导致变量"Count"的增量(次数)超过您的期望值。 一种简单的方法是延迟此功能、以便开关抖动间隔已过期...
您的第一项工作是确定您是否在激活交换机时达到指定的测试点...
问候语-如果您"无法到达测试点1"、则问题可能出在硬件或软件中-或两者兼而有之。
您是否有一个示波器(理想情况下)或 DMM (用于监控 PF0)、这两个示波器都具有正确的(匹配)开关"已启动和未启动"? 进入 PF0的信号电平应在整个3V3电压电平之间"摆动"。
一旦经过"测试/验证"(请幽默我-执行此操作-即使您报告(过去)成功)、您必须测试您的"如果陈述"(下面)是否符合您的愿望。 您的 IDE 应该使您能够监控 PF0 -它提供了"PF0"上拉"(您的代码显示)并对"开关激活"做出响应的"第二次独立确认"。 (假设 LPAD 切换为"接地驱动"。
注意:如果 LPAD 的开关-连接到 PF0 -"激活时驱动至 VCC (3V3)"-您必须更改 PF0以包含"WPD"、而不是代码中显示的"WPU"! (WPD =弱下拉电阻器)
IF (!GPIOPinRead (GPIO_PORTF_BASE、GPIO_PIN_0))
请记住、大多数开关都倾向于"反弹"(即"保持和断开接触"-有时持续几毫秒。) 您必须在怀疑的"开关反弹间隔"内"防止"任何"返回"到该 IF 语句(现在在上面)。 (通过使用延迟)