-
#include "DSP28x_Project.h"
#include "TestDAAD.h"
void main(void)
{
InitSysCtrl();
Init_DA_Gpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
//MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
//InitFlash();
Init_Spi();
Init_TLV5636();
Delay_ms(10);
Offset_Tx(2.5);
ERTM; //最高优先级的实时调试事件
//Delay_ms(10);
while(1)
{
//Mcbsp_TX_SCLK();
//Delay_ms(10);
//Offset_Tx(2.5);
}
}
复制代码
-
在网上找的都是和芯片锁死相类似,但是一般不是只会出现在烧写flash的时候嘛,我在调试的时候烧写的是ram
-
楼主最后解决了嘛
-
jishuaihu 发表于 2017-11-3 22:07
修改CMD文件里ramfuncs部分的大小就行了,或者把没有必要放到ramfuncs里的函数和变量放到别的地方。
TI例程里的CMD只有一句 ramfuncs : > RAML0, PAGE = 0复制代码
然而新建工程自带的CMD是#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc : {} > RAML0, PAGE = 0
#else
ramfuncs : > RAML0, PAGE = 0
#endif
#endif 复制代码
有什么区别吗{:1_110:}
-
头文件和源文件都是从controlsuite 中导入的
C:\ti\controlSUITE\device_support\f2833x\v142
-
warning #10247-D: creating output section "ramfuncs" without a SECTIONS specification复制代码
楼主这个警告是什么原因呢
-
:shy:问题在哪 能说一下嘛
-
:time::time::time:
-
qwerghf 发表于 2017-9-19 10:53
调出来就好,参考官方代码,根据手册修改官方代码为自己所用快一些,有问题多交流
嗯嗯 谢谢:loveliness:
-
qwerghf 发表于 2017-9-18 23:23
[code]#include
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // S ...
十分感谢,最后调出来发现还是波特率没对上:Cry:
-
@qwerghf 我用usb转串口模块使用UART0可以正常接收= = 为什么自带的UART1不行呢
-
:Sad:
-
#include
/*
* main.c
*/
/*int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
return 0;
}*/
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P4SEL = BIT4+BIT5; // P5_6和P5_7第二功能打开,设置方向
UCA1CTL1 |= UCSWRST; // 首先使RST位置位,只有这样后面的设置才有效
UCA1CTL1 |= UCSSEL_2; // SMCLK,为系统时钟4MHz
UCA1BR0 = 0x02; // 4MHz 115200
UCA1BR1 = 0; // 4MHz 115200
UCA1MCTL |= UCBRS_3 + UCBRF_2 + UCOS16; // 设置调整参数UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // RST复位
UCA1IE |= UCRXIE + UCTXIE;
_EINT();
while (1)
{
//
}
}
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break;
case 2:
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = UCA1RXBUF;
break;
case 4:break;
default: break;
}
}
复制代码
-
@qwerghf 改了一下=-= 还是不行 头好晕
-
#include
/*
* main.c
*/
/*int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
return 0;
}*/
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
P4SEL = BIT4+BIT5; // P5_6和P5_7第二功能打开,设置方向
UCA1CTL1 |= UCSWRST; // 首先使RST位置位,只有这样后面的设置才有效
UCA1CTL1 |= UCSSEL_2; // SMCLK,为系统时钟4MHz
UCA1BR0 = 0x02; // 4MHz 115200
UCA1BR1 = 0; // 4MHz 115200
UCA1MCTL |= UCBRS_3 + UCBRF_2 + UCOS16; // 设置调整参数UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // RST复位
UCA1IE |= UCRXIE + UCTXIE;
_EINT();
while (1)
{
//
}
}
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break;
case 2:
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = UCA1RXBUF;
break;
case 4:break;
default: break;
}
}
复制代码
-
qwerghf 发表于 2017-9-18 11:37
你的程序写的也不对,你看下官方的电路用的串口几
这个例程是UART0。。 但硬件显示的COM是UART1。。。
-
qwerghf 发表于 2017-9-18 11:19
你中断开启了吗,把全局中断打开
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3, interrupts enabled 这句不是嘛。。。
-
-
qwerghf 发表于 2017-9-18 10:32
单步调试看看MCU那有没有收到数据
我单步发现卡在使能中断那了。。。一直进不了中断
-
@qwerghf 能看下吗:Sad: