This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在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;
}
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;
用的就是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 parity
void 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);
}
不知道哪个环节出了问题?????????