TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28027: 程序开头printf正常输出,程序后面printf无输出

Part Number:TMS320F28027

我在调试的时候发现程序开始printf可以正常输出,但后面的printf无输出 请问这什么情况会导致串口刚开始有输出,PWM中断照样运行 就是不知道问题出在哪里 我把代码贴出来,麻烦给予指导,谢谢!

void main(void) 
{
// uint8_t print_cnt1=0,print_cnt2=0;
// Step 1. Initialize System Control:b
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2803x_SysCtrl.cInitSysCtrl();
//  Clear all interrupts and initialize PIE vector table:
// Disable CPU interruptsDINT;
// Initialize PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the DSP2803x_PieCtrl.c file.InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:IER = 0x0000;IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example.  This is useful for debug purposes.
// The shell ISR routines are found in DSP2803x_DefaultIsr.c.
// This function is found in DSP2803x_PieVect.c.InitPieVectTable();// Copy time critical code and Flash setup code to RAM//实现在RAM中运行代码的搬运,例如使用官方的DELAY_USMemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);InitMyGPIO();InitKEY();//按键SCI_Init();//波特率128000bps
 open_uart_debug();EALLOW;PieVectTable.EPWM4_INT = &epwm4_isr;EDIS;InitEPWM_AQ_DB();printf("\r\n\r\n\r\nDSP is Ready");//标准C的printf输出测试,串口调试助手设置波特率128000bps,ASCII格式显示
i=1;
 printf("\r\n开发板左上角的J4排针(3针),用跳线帽短接靠左的2根针,即为将RG接入到模拟输入口B3");
 printf("\r\nPWM频率为19.6KHZ");
 //中断配置步骤-----5
 PieCtrlRegs.PIEIER3.bit.INTx4 = 1;// Enable the PIE block
 PieCtrlRegs.PIECTRL.bit.ENPIE = 1;// Enable the PIE block
 IER |= M_INT3;
 EINT;// Enable Global interrupt INTM
 ERTM;//请参看 使用须知 文件夹下的分享--ERTM、DRTM 在DSP编程中的作用.pdfprintf("\r\nPWM频率为20KHZ 两路PWM");while(1){}
}

Green Deng:

有可能是堆栈空间不够,可以在CCS和cmd文件里面试一下增加一些堆栈空间。

另外可以参考一下这份说明:software-dl.ti.com/…/sdto_cgt_tips_for_using_printf.html

,

jun liu:

原来的程序比较大 包含了串口 定时器 以及EPWM 并且还有IIC 我把其他程序删除了就只留串口和EPWM程序 发现ERTM后的printf("\r\nPWM频率为20KHZ 两路PWM");没有输出 程序执行不到while语句处 个人认为不是堆栈问题 有可能是其他问题  程序下载后暂停键无法点击 这是怎么回事?谢谢!

,

Green Deng:

在新帖中回复:e2echina.ti.com/…/tms320f28027-epwm4-while-eint-ertm-printf-printf

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28027: 程序开头printf正常输出,程序后面printf无输出
分享到: 更多 (0)