调试SCI接收中断的过程有点折腾。中断也配置了,也使能了,也定义中断响应函数了,跟踪调试时候每次中断发生,总会莫名其妙的进入到一个 asm (" ESTOP0"); for(;;);,然后卡死在这里,百思不得其解。
琢磨了半天,才发现原来CCS5.4已经给定义了一个中断响应函数,在F2802x_DefaultIsr.c里。把自己定义的中断函数屏蔽,在CCS5.4的中断响应函数里接收数据并发送,测试OK。太后知后觉了,就在这竟然卡了这么久。
主函数main.c
/* Includes ------------------------------------------------------------------*/
#include<F2802x_Device.h>
#include<DSP28x_Project.h>
#include "SystemInit.h"
#include "SubFunction.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
void main(void)
{
InitSysCtrl(); // 系统控制初始化
InitGpio(); // GPIO 初始化
PieVectTable_Configure(); // 中断向量表初始化
LED_Configure(); // LED 引脚配置
//EXTI_Configure(); // 按键中断配置
SCI_Configure(); // SCI 初始化
while(1){
LED_Blink();
}
}
系统初始化SystemInit.c
/* Includes ------------------------------------------------------------------*/
#include<F2802x_Device.h>
#include<DSP28x_Project.h>
/* Private typedef -----------------------------------------------------------*/
/* Private define --------------------------------------