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.
工具/软件:Code Composer Studio
大家好、
我正在使用 TMS320F28377S 控制器、首先我尝试控制 GPIO 引脚。 我在 C2000 ware 中使用示例进行尝试。
当我编译错误时、会显示在 Main.obj 中首先引用的 GPIO_Writepin
帮助我重新了解这一点
Yuvaraj
我的代码是
//
//包含的文件
//
#include "driverlib.h"
#include "device.h"
uint16_t sDataA[10];
uint16_t rDataA[10];
uint16_t rDataPointA;
uint16_t a、j;
_interrupt void sciaTXFIFOISR (void);
_interrupt void sciaRXFIFOISR (void);
void initSCIAFIFO (void);
void 错误(void);
void main (void)
{
uint16_t i;
device_init();
//InitSysCtrl();
DEVICE_initGPIO();
GPIO_setMasterCore (12、GPIO_CORE_CPU1);
GPIO_setMasterCore (13、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_12_GPIO12);
GPIO_setDirectionMode (12、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (12、GPIO_PIN_TYPE_STD);
GPIO_setPinConfig (GPIO_13_GPIO13);
GPIO_setDirectionMode (13、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (13、GPIO_PIN_TYPE_STD);
GPIO_setMasterCore (43、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_43_SCIRXDA);
GPIO_setDirectionMode (43、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (43、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (43、GPIO_QUAL_异 步);
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_异 步);
interrupt_initModule();
interrupt_initVectorTable();
//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
interrupt_register (INT_SCIA_RX、sciaRXFIFOISR);
interrupt_register (INT_SCIA_TX、sciaTXFIFOISR);
//初始化设备外设:
initSCIAFIFO();
//初始化发送数据。 该数据之后传输该数据
//将在下一次传输时更新
对于(I = 0;I < 10;I++)
{
sDataA[i]= i;
}
rDataPointA = sDataA[0];
INTERRUPT_ENABLE (INT_SCIA_RX);
INTERRUPT_ENABLE (INT_SCIA_TX);
INTERRUPT_DISABLE (INT_SCIA_RX);
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);
//启用全局中断(INTM)和实时中断(DBGM)
EINT;
ERTM;
//空闲循环。 只需坐下来循环(可选):
for (;;)
{
//打开 LED
GPIO_WritePin (13、0);
//GPIO_WritePin (12、1);
对于(j = 0;j < 10000;j++)
{
对于(A = 0;A < 100;A++)
{
}
}
INTERRUPT_ENABLE (INT_SCIA_TX);
//关闭 LED
// GPIO_WritePin (13、1);
//GPIO_WritePin (12、0);
/*for (j = 0;j < 10000;j++)
{
对于(A = 0;A < 100;A++)
{
}
}*/
}
}
//错误-错误时停止调试器的函数
空错误(空)
{
asm (" ESTOP0");//测试失败!! 停下来!
适用于(;);
}
// sciaTXFIFOISR - SCIA 发送 FIFO ISR
_interrupt void sciaTXFIFOISR (void)
{
uint16_t i;
sDataA[0]= 0x55;
sDataA[1]= 0xAA;
SCI_writeCharArray (SCIA_BASE、sDataA、10);
//递增发送下一个周期的数据
/*表示(i = 0;i < 2;i++)
{
sDataA[i]=(sDataA[i]+ 1)& 0x00FF;
}*/
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_TXFF);
//发出 PIE ACK
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);
INTERRUPT_DISABLE (INT_SCIA_TX);
INTERRUPT_ENABLE (INT_SCIA_RX);
}
// sciaRXFIFOISR - SCIA 接收 FIFO ISR
_interrupt void sciaRXFIFOISR (void)
{
uint16_t i;
SCI_readCharArray (SCIA_BASE、rDataA、2);
//检查接收到的数据
对于(I = 0;I < 2;I++)
{
if (rDataA[i]!=(rDataPointA)& 0x00FF)
{
// error();
}
}
// rDataPointA =(rDataPointA + 1)& 0x00FF;
SCI_clearOverflowStatus (SCIA_BASE);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_RXFF);
//发出 PIE ACK
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);
}
// initSCIAFIFO -配置 SCIA FIFO
空 initSCIAFIFO()
{
// 8个字符位,1个停止位,无奇偶校验。 波特率为9600。
SCI_setConfig (SCIA_BASE、DEVICE_LSPCLK_FREQ、384000、(SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_enableModule (SCIA_BASE);
SCI_enableLoopback (SCIA_BASE);
SCI_resetChannels (SCIA_BASE);
SCI_enableFIFO (SCIA_BASE);
//启用 RX 和 TX FIFO 中断
SCI_enableInterrupt (SCIA_BASE、(SCI_INT_RXFF | SCI_INT_TXFF);
SCI_disableInterrupt (SCIA_BASE、SCI_INT_RXERR);
SCI_setFIFOInterruptLevel (SCIA_BASE、SCI_FIFO_TX2、SCI_FIFO_RX2);
SCI_performSoftwareReset (SCIA_BASE);
SCI_resetTxFIFO (SCIA_BASE);
// SCI_resetRxFIFO (SCIA_BASE);
/*
#ifdef 自动波特率
//执行自动波特率锁定。
// SCI 要求用'A'或'A'来锁定波特率。
SCI_lockAutobaud (SCIA_BASE);
#endif*/
}