C2000LaunchPad学习记录(5)——SIC中断接收

本文记录了在使用C2000 LaunchPad开发板(型号TMS320F28027)进行SIC中断接收时遇到的问题及解决过程。在调试SCI中断时,发现中断会意外进入一个无限循环,导致程序卡死。经过排查,发现是由于CCS5.4 IDE已预定义了中断响应函数,在F2802x_DefaultIsr.c文件中。解决方案是屏蔽自定义中断函数,改用IDE提供的函数处理中断,从而实现数据的正常接收和发送。
摘要由CSDN通过智能技术生成

调试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 --------------------------------------
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值