请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28069 工具/软件:Code Composer Studio
您好!
我将 SCI-B 配置为8-N-1 250K。 传输过程中没有问题、但当我尝试接收任何内容时、缓冲区中没有任何内容。
这是我的 SCI-B 代码和设置
// //将低外设时钟设置为90MHz //LOSPCP = SYSCLOCK / 1; // EALLOW; SysCtrlRegs.LOSPPCP.ALL = 0; EDIS;
void scib_fifo_init (void) { // // 1停止位,无回送,无奇偶校验,8个字符位,异步模式, //空闲线协议 // ScibRegs.SCICCR.all =0x0007; // //启用 TX、RX、内部 SCICLK、禁用 RX ERR、睡眠、 TXWAKE // ScibRegs.SCICTL1.all =0x0003; ScibRegs.SCICTL2.bit.TXINTENA=0; //无 TX 中断 ScibRegs.SCICTL2.bit.RXBKINTENA=0; //无 RX 中断 // // 250000波特@LSPCLK = 90MHz (90MHz SYSCLK) 90m /(250K * 8)- 1 = 44 // ScibRegs.SCIHBAUD = 0x0000; ScibRegs.SCILBAUD = SCI_PRD; ScibRegs.SCICCR.bit.LOOPBKENA=0;//禁用回路 ScibRegs.SCIFFTX.All=0xE040; ScibRegs.SCIFFRX.All=0x0042; ScibRegs.SCIFFCT.All=0x0; ScibRegs.SCICTL1.all =0x0023;//从复位中撤回 SCI SciaRegs.SCIFFRX.bit.RXFIFORESET=1; SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1; }
void ScibGpio (void) { EALLOW; // //为所选引脚启用内部上拉 //用户可以启用或禁用上拉。 //这将启用指定引脚的上拉电阻。 // //GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0;//启用 GPIO19的上拉(SCIRXDB) GpioCtrlRegs.GPBPUD.bit.GPIO44 = 0; GpioCtrlRegs.GPAPUD.bit.GPIO14 = 0;//为 GPIO14启用上拉(SCITXDB) // //仅将所选引脚的限定条件设置为异步 默认情况下、//输入与 SYSCLKOUT 同步。 //这将为所选引脚选择异步(无限定条件)。 // //GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3;//异步输入 GPIO19 (SCIRXDB) GpioCtrlRegs.GPBQSEL1.bit.GPIO44 = 3;//异步输入 GPIO44 (SCIRXDB) //GpioCtrlRegs.GPAMUX2.bit.GPIO19=2; GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 2; GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 2; EDIS; }
这是接收器函数、但编译器卡在行中; while (ScibRegs.SCIFFRX.bit.RXFFST = 0)
void sciReceive (uint32 length、uint8 * data)
{
while (ScibRegs.SCIFFRX.bit.RXFFST = 0)
{
}
//
//检查接收到的字符
//
while (length---)
{
*数据= ScibRegs.SCIRXBUF.ALL;
Data++;
}
}


