情况是这样的,我写了一个比较简单的程序测试UART通信,源程序如下,我把P2口接到8个共阳LED上,只要能进入RX中断LED就由暗变亮,但是编译器报错:!E lib/libpsoc.lib(lib/obj/uart_1int.obj)(15):(482) symbol "_UART_1_RX_ISR" is defined more than once in "output\UARTTest2.obj" (error) 说是函数符号在目标函数中已经定义过了,去掉中断句柄声明后不报错了,但是却进不了RX中断函数(LED灯不亮),改变boot.asm里的中断向量表也不起作用,有哪位碰到过类似的情况,或者把你们调试成功的UART中断程序给我看一下,毕设很棘手,谢谢了! 源程序: #include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules #pragma interrupt_handler UART_1_RX_ISR
void main() { PRT2DR=0xff; UART_1_EnableInt() // Enable RX,TX interrupts UART_1_Start(UART_PARITY_NONE); // Enable UART M8C_EnableGInt ; // Turn on interrupts UART_1_PutChar('X'); while(1) { } // Insert your main routine code here. }
void UART_1_RX_ISR(void) { PRT2DR = 0x00; } |