Thread 中讨论的其他器件:C2000WARE
工具与软件:
大家好、我正在尝试实现 SCI。 一个字符、然后是一个帧。
我按照一些步骤操作、但在终端上看不到任何内容。 我已附上下面的代码。 请提供帮助
/**
* main.c
*/
#include "F28x_Project.h"
void uart_pin_init ();
void sci_init();
#define dataBuf ="Hello";
int main (void)
{
InitSysCtrl();
InitGpio();
//初始化 SCI 外设
颜色;
uart_pin_init ();
SCI_INIT ();
EINT;
ERTM;
while (1){
if (ScibRegs.SCIFFTX.bit.TXFFST!=0){
ScibRegs.SCITXBUF.all ="a";
}
}
返回0;
}
void uart_pin_init (){
EALLOW;
// UART 的引脚选择
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3;
GpioCtrlRegs.GPBGMUX1.bit.GPIO43 = 3;
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 3;
GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 3;
//引脚方向配置
GpioCtrlRegs.GPBDIR.bit.GPIO42 = 1;
GpioCtrlRegs.GPBDIR.bit.GPIO43 = 0;
EDIS;
}
void sci_init(){
// SCI 外设处于非活动状态
ScibRegs.SCICTL1.bit.SWRESET = 0;
//通信控制寄存器配置
ScibRegs.SCICCR.bit.SCICHAR = 0x8;
ScibRegs.SCICCR.bit.PARITYENA = 0;
ScibRegs.SCICCR.bit.stopbits = 0;
ScibRegs.SCICCR.bit.LOOPBKENA = 0;
//波特率寄存器配置
ScibRegs.SCIHBAUD.all = 0x515;
//启用 Tx 和 Rx
ScibRegs.SCICTL1.bit.TXENA = 1;
ScibRegs.SCICTL1.bit.RXENA = 1;
//激活 SCI 外设
ScibRegs.SCICTL1.bit.SWRESET = 1;
}