在CCS3.3下的LaunchPad F28027调用scia_xmit(0x01),在串口调试助手上面显示的是7F,scia_xmit(0x02),在串口调试助手上面显示的是3F,不知道是哪里有问题,请大神指点,晶振用的是内部晶振10MHZ,倍频后为60MHz,Low speed clock= SYSCLKOUT/4 ,最终SCICLK为15MHZ,波特率寄存器为 SciaRegs.SCIHBAUD =0x0000;SciaRegs.SCILBAUD =0x00C2;(9600的波特率),现在不知道哪个环节有问题,个人感觉数据时发送了的,会不会是波特率有问题,但波特率配也配对了???????????????????
void scia_xmit(int a)
{
while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SciaRegs.SCITXBUF=a;
}
Chen Jones:
1. 建议您先用TI SCI官方历程试试
2. 用下面的算算试试,特别是LSPCLK,仔细检查是否真的是1/4。注意有没有HBAUD
#define CPU_FREQ 60E6#define LSPCLK_FREQ CPU_FREQ#define SCI_FREQ 57600#define SCI_PRD (LSPCLK_FREQ/(SCI_FREQ*8))-1
SciaRegs.SCIHBAUD = 0; SciaRegs.SCILBAUD = SCI_PRD;
在CCS3.3下的LaunchPad F28027调用scia_xmit(0x01),在串口调试助手上面显示的是7F,scia_xmit(0x02),在串口调试助手上面显示的是3F,不知道是哪里有问题,请大神指点,晶振用的是内部晶振10MHZ,倍频后为60MHz,Low speed clock= SYSCLKOUT/4 ,最终SCICLK为15MHZ,波特率寄存器为 SciaRegs.SCIHBAUD =0x0000;SciaRegs.SCILBAUD =0x00C2;(9600的波特率),现在不知道哪个环节有问题,个人感觉数据时发送了的,会不会是波特率有问题,但波特率配也配对了???????????????????
void scia_xmit(int a)
{
while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SciaRegs.SCITXBUF=a;
}
Mak he:
回复 Chen Jones:
用的就是SCI官方实例,
选用的是内部时钟1 IntOsc1Sel();
软件锁相选择:InitPll(DSP28_PLLCR,DSP28_DIVSEL);//DSP28_PLLCR=12,DIVSEL=2
LSPCLK选择是: SysCtrlRegs.LOSPCP.all = 0x0002;
SysCtrlRegs.XCLK.bit.XCLKOUTDIV=2; // Set XCLKOUT = SYSCLKOUT/1
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
按SCI初始化如下:
#define CPU_FREQ 60E6#define LSPCLK_FREQ CPU_FREQ#define SCI_FREQ 57600#define SCI_PRD (LSPCLK_FREQ/(SCI_FREQ*8))-1
// Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parityvoid scia_echoback_init(){ // Note: Clocks were turned on to the SCIA peripheral // in the InitSysCtrl() function
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, // Disable RX ERR, SLEEP, TXWAKE SciaRegs.SCICTL2.all =0x0003; SciaRegs.SCICTL2.bit.TXINTENA =1; SciaRegs.SCICTL2.bit.RXBKINTENA =1;
SciaRegs.SCIHBAUD = 0; SciaRegs.SCILBAUD = SCI_PRD;
SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset}
串口调试助手配置如下图:
for(;;){ scia_xmit(0xaa); DELAY_US(1000000);
}

不知道哪个环节出了问题?????????
在CCS3.3下的LaunchPad F28027调用scia_xmit(0x01),在串口调试助手上面显示的是7F,scia_xmit(0x02),在串口调试助手上面显示的是3F,不知道是哪里有问题,请大神指点,晶振用的是内部晶振10MHZ,倍频后为60MHz,Low speed clock= SYSCLKOUT/4 ,最终SCICLK为15MHZ,波特率寄存器为 SciaRegs.SCIHBAUD =0x0000;SciaRegs.SCILBAUD =0x00C2;(9600的波特率),现在不知道哪个环节有问题,个人感觉数据时发送了的,会不会是波特率有问题,但波特率配也配对了???????????????????
void scia_xmit(int a)
{
while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SciaRegs.SCITXBUF=a;
}
Mak he:
回复 Mak he:
补充:串口调试助手图片发错啦

TI中文支持网



