工具/软件:Code Composer Studio
您好!
我正在尝试使用 SCI/UART 将此 MCU 与蓝牙模块连接。 我已经使用 GPIO 18和19在 launchpad 上进行了测试、但当我尝试使用 GPIO42在控制卡上进行同样的传输时、我很难设置它。 我们使用示波器来探测 GPIO42 (HSEC 引脚93)、但没有看到任何东西。
提前感谢您、
金高
P.S.
以下代码是我们尝试引脚多路复用 GPIO42以使用 SCITXA 的方式。 我不确定 GpioCtrlRegs.GPBGMUX1.bit.GPIO42 = 15或3。 嗯、无论哪种方式、两者都不起作用。 其余代码与代码示例 TMS320F28379D>sci_loopback_CPU 相同。
//
//初始化设备时钟和外设
//
device_init();
//
//
DEVICE_initGPIO();
// GPIO19是 SCI Rx 引脚。
//
GPIO_setMasterCore (19、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setDirectionMode (19、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (19、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (19、GPIO_QUAL_异 步);
//
// GPIO42是 SCI Tx 引脚。
//
EALLOW;
GPIO_setMasterCore (42、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_42_SCITXDA);
GPIO_setDirectionMode (42、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (42、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (42、GPIO_QUAL_异 步);
EALLOW;
GpioCtrlRegs.GPBGMUX1.bit.GPIO42 = 15;
GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 15;//多路复用器到 SCI
//初始化 PIE 并清除 PIE 寄存器。 禁用 CPU 中断。
//
interrupt_initModule();
//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)。
//
interrupt_initVectorTable();
//
//启用 CPU 中断
//
interrupt_enableMaster();
//
//初始化计数
//
loopCount = 0;
错误计数= 0;
//
//初始化 SCIB
//
initSCIBFIFO();
initSCIALOopback ();
//
//注意:此示例不需要自动波特率锁定
//
//
//发送以0开头的字符
//
//sendChar =;
sendChar = 0;
float I = 0;
uint8_t dataID = 0;
//
//从0x00开始一直发送字符并经过0xFF。
//发送每个后,检查接收缓冲区的值是否正确。
//
for (;;)
{
/*
if (sendAT){
if (sendChar < 21){
xmitSCIB (ATCommands[sendChar]);
}
}否则{
if (sendChar < 2){
xmitSCIB (startAT[sendChar]);
}
}
*
if (k <= 5){
xmitSCIB (sendChar);
//
//等待 RRDY/RXFFST = 1、等待 FIFO 中有1个数据可用
//
/* while (SCI_getRxFIFOStatus (SCIB_BASE)=SCI_FIFO_RX0)
{
;
}
*
//
//检查接收到的字符
//
receivedChar = SCI_readCharBlockingFIFO (SCIB_BASE);
//
//接收到的字符不正确
//
if (receivedChar!= sendChar)
{
//error();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
空错误()
{
错误计数++;
Example_Fail = 1;
//asm (" ESTOP0");//取消注释以在此处停止测试
适用于(;);
}
//
// initSCIBLoopback -配置 SCIB 设置
//
空 initSCIALOopback ()
{
//
//注意:SCIB 外设的时钟被打开
//在 Device_init()函数中
//
//
// 8个字符位,1个停止位,无奇偶校验。 波特率为9600。
//
SCI_setConfig (SCIB_BASE、DEVICE_LSPCLK_FREQ、9600、(SCI_CONFIG_WLEN_8 |
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_disableLoopback (SCIB_BASE);
SCI_enableFIFO (SCIB_BASE);
SCI_performSoftwareReset (SCIB_BASE);
SCI_disableInterrupt (SCIB_BASE、SCI_INT_RXERR);
SCI_enableInterrupt (SCIB_BASE、SCI_INT_TXRDY);
SCI_enableInterrupt (SCIB_BASE、SCI_INT_RXRDY_BRKDT);
//SCI_enableLoopback (SCIB_BASE);
//
//从复位中撤回 SCI
//
SCI_enableModule (SCIB_BASE);
}
//
// xmitSCIB -从 SCI 发送一个字符
//
void xmitSCIB (uint16_t a)
{
SCI_writeCharNonBlocking (SCIB_BASE、A);
}
//
// initSCIBFIFO -初始化 SCI FIFO
//
空 initSCIBFIFO()
{
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_TXFF);
SCI_resetTxFIFO (SCIB_BASE);
SCI_enableFIFO (SCIB_BASE);
SCI_setFIFOInterruptLevel (SCIB_BASE、SCI_FIFO_TX0、SCI_FIFO_RX4);
SCI_resetChannels (SCIB_BASE);
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_RXFF);
}
//
//文件结束
//
