工具/软件:Code Composer Studio
您好!
我正在使用 ccs8调试代码、以使用 UART 协议(UART6)从传感器接收数据
没有编译错误、但当我尝试执行程序时、它会指示 exit.c
如何解决此错误。
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.
工具/软件:Code Composer Studio
您好!
我正在使用 ccs8调试代码、以使用 UART 协议(UART6)从传感器接收数据
没有编译错误、但当我尝试执行程序时、它会指示 exit.c
如何解决此错误。
[引用 user="Rahul Iyer"]没有编译错误,但当我尝试执行程序时,它会指示 exit.c[/quot]
该文件名"exit.c"超出了我的"10多年-文件名识别"和"未找到"、通过我的 Windows 搜索"所有"TM4C 文件。
正如另一张海报所建议的-但并未详述-"长期存在""FAULT_ISR"是否 已(现在)"数字化?" (深入到"解释性较差/有用性较低"的地方... "exit.c?")
与大多数此类错误一样、您的错误最好通过您的 代码库演示来解决。 (理想情况下仅限于您的 UART 设置和函数调用。)
您好、Ralph、
我正在尝试从 NEO 6m GPS 模块读取数据、并在虚拟 COM 端口上显示相同的数据
我修改了 UART_ECHO 代码以接收 UART6上的数据并通过 UART0将其发送到终端
代码为:
#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "stdio.h"
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)
{
}
#endif
// UART4上中断的处理函数
//配置在 startup_ccs.c 文件中完成
// startup_ccs.c 中的矢量表定义为
/*...*/
/* UART4IntHandler、 // UART4 Rx 和 Tx *
/*...*/
无效
UART4IntHandler (空)
{
//清除 UART4上的中断
uint32_t ui32Status;
ui32Status = ROM_UARTIntStatus (UART4_base、true);
ROM_UARTIntClear (UART4_base、ui32Status);
//在读取开始时打开 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、GPIO_PIN_2);
while (ROM_UARTCharsAvail (UART4_base))
{
//将 GPS 数据(从 UART4读取)写入 UART0
ROM_UARTCharPutNonBlocking (UART0_BASE、ROM_UARTCharGetNonBlocking (UART4_base));
}
//在读取结束时关闭 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0);
}
内部
main (空)
{
//为中断处理程序启用怠惰堆栈。
ROM_FPUEnable();
ROM_FPULazyStackingEnable();
//将时钟设置为直接从晶体运行。
ROM_SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHz);
//启用使用的外设:
//端口 C 引脚将用作 UART4
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART4);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOC);
//端口 F 将用于板载 LED
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);
//端口 A 引脚将用作 UART0 (虚拟串行连接调试)
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
//启用处理器中断。
ROM_IntMasterEnable();
//将 PC4设置为 UART4 RX
GPIOPinConfigure (GPIO_PC4_U4RX);
ROM_GPIOPinTypeUART (GPIO_PORTC_BASE、GPIO_PIN_4);
//将 GPIO A1设置为 UART0 Tx (发送)
GPIOPinConfigure (GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_1);
//将 UART0配置为115、200、8-N-1操作。
//这是 TM4C 和 PC 之间的串行连接
ROM_UARTConfigSetExpClk (UART0_BASE、ROM_SysCtlClockGet ()、115200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//将 UART0配置为115、200、8-N-1操作。
//这是 TM4C 和 PC 之间的串行连接
ROM_GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2);
//将 UART 配置为9600、8-N-1操作。 GPS 模块提供9600 bps 的数据
//这是 GPS 模块(U-blox NEO6M)之间的连接
ROM_UARTConfigSetExpClk (UART4_base、ROM_SysCtlClockGet ()、9600、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
UART_CONFIG_PAR_NONE));
//启用 UART4中断。 因此不需要其他中断
//我们不希望 PC 中有任何内容,它用于显示 GPS 数据
ROM_IntEnable (INT_UART4);
ROM_UARTIntEnable (UART4_base、UART_INT_RX | UART_INT_RT);
while (1)
{
}
}
在编译程序时、我会遇到以下错误
说明资源路径位置类型
"="">processors.wiki.ti.com/.../10234">
我已将 STARTUP_CCS.c 中 UART6的默认中断处理程序更改为 UART6Handler 函数
请帮助我解决这些错误
您好 Rahul、
检查您的 ISR 名称、并确保在 startup_ccs.c 文件中像这样正确定义它。
extern void UARTIntHandler (void);
如果未使用 extern 标签、则 UART_ECHO.c 文件将无法正确看到它。
您谈到了将中断处理程序更改为 UART6Handler、因此请确保您具有如下内容:
extern void UART6Handler (void);