主题中讨论的其他器件: TMDSEMU200-U
我正在 尝试 使用对 TM4C1294KCPDT 进行编程 TMDSEMU200-U 调试器进行编程。
当我调试代码时、它成功下载映像、然后在运行代码后、它进入 FaultISR。
单步执行代码我发现、当代码尝试使用"SysCtlClockFreqSet ()"函数设置时钟频率时、它进入 faultISR。
我已附上代码和原理图。
这就是晶体的连接方式

下面是我的代码:
#include <stdint.h>
#include <stdbool.h>
#include "Config.h"
//
#include "driverlib/sysctl.h"
#include "driverlib/interrupt.h"
#include "inc/hw_gpio.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "inc/hw_memmap.h"
#include "inc/hw_ints.h"
uint32_t clockFreq = 0;
uint32_t counter = 0;
int main(void)
{
uint8_t state = 0;
clockFreq = SysCtlClockFreqSet
(
(SYSCTL_XTAL_25MHZ | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_240),
120000000
);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_2);
while(1)
{
counter++;
if (state)
{
state = 0;
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_2, GPIO_PIN_2); // Logic LOW is shut down asserted
}
else
{
state = 1;
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_2, 0); // Logic LOW is shut down asserted
}
SysCtlDelay(clockFreq / (10000 * 3));
}
}