主题中讨论的其他器件: 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)); } }