TI中文支持网
TI专业的中文技术问题搜集分享网站

最简单的问题:GPIO无法得到希望的输出

TM4C123系列

程序如下:用逻辑分析仪看 PG2 始终保持高电平(原意是输出脉冲)

int main(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_2);
while (1)
{
GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, 0);
SysCtlDelay(250 * (SysCtlClockGet() / 3000));
GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_2, 0);
SysCtlDelay(250 * (SysCtlClockGet() / 3000));
}}

手册上没找到例子,程序可以编译通过,也能下载到芯片里

xyz549040622:

1.系统的主时钟没有设置

2.你的程序配置是否OK,给你个LED的例子

//LED实验程序解析
//头文件
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "driverlib/rom.h"
#include "driverlib/gpio.h"
#include "driverlib/fpu.h"
#include "driverlib/pin_map.h"int main (void)
{//使能FPUFPUEnable();FPULazyStackingEnable();//设置系统时钟为50MHz (400/2/4=50)SysCtlClockSet(SYSCTL_SYSDIV_4 |SYSCTL_USE_PLL|SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);//使能相关的外设ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);//配置PG2为输出ROM_GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE,GPIO_PIN_2);while(1)
{//翻转LED,延时时间为250ms//延时 = (SysCtlClockGet()/12)*(3/SysCtlClockGet())=0.25sROM_GPIOPinWrite(GPIO_PORTG_BASE,GPIO_PIN_2, GPIO_PIN_2);ROM_SysCtlDelay(SysCtlClockGet()/12);ROM_GPIOPinWrite(GPIO_PORTG_BASE,GPIO_PIN_2, 0);ROM_SysCtlDelay(SysCtlClockGet()/12);
}
}

xiaoming yu1:

回复 xyz549040622:

谢谢,我试试你的方案

赞(0)
未经允许不得转载:TI中文支持网 » 最简单的问题:GPIO无法得到希望的输出
分享到: 更多 (0)