Thread 中讨论的其他器件:C2000WARE
工具与软件:
大家好
我尝试开发一个代码来测试和控制 F28379D 板、但我发现一些问题需要解决、我尝试与我的板串行回显、但我的板不回答我的命令、只将数据发送到我的串行端口。
我使用 GPIO 18和19进行该通信。
可以有人帮我吗? 下面是我的代码:
//
//包含的文件
//
#include "driverlib.h"
#include "device.h"
void uart_GPIO_init ();
void UART_Config();
void SCI_A_init ();
void main (void)
{
uint16_t receivedChar;
device_init();
device_initGPIO();
UART_GPIO_init ();//为 SCIB 配置 GPIO
UART_Config ();//配置 UART
SCI_A_init ();//初始化 SCIB
SCI_writeCharArray (SCIB_BASE、(uint16_t *)"Hello World\r\n"、13);//发送固定消息
while (1)
{
//检查是否接收到字符
if (SCI_getRxFIFOStatus (SCIB_BASE)!= SCI_FIFO_RX0)
{
//读取接收到的字符
receivedChar = SCI_readCharBlockingFIFO (SCIB_BASE);
//发送一个字符串"Received from F28379D:"
SCI_writeCharArray (SCIB_BASE、(uint16_t *)"Receivido de F28379D:"、22);
//发送接收到的字符(回声)
SCI_writeCharBlockingFIFO (SCIB_BASE、receivedChar);
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_RXFF);
//小延迟以避免通信过载
DEVICE_DELAY_US (1000000);
}
}
}
空 uart_gpio_init ()
{
GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setPinConfig (GPIO_18_SCITXDB);
}
空 UART_Config()
{
//
// SCI Rx 引脚的配置。
//
GPIO_setMasterCore (19u、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setDirectionMode (19u、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (19U、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (19u、GPIO_QUAL_ASYNC);
//
// SCI Tx 引脚的配置。
//
GPIO_setMasterCore (18u、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_18_SCITXDB);
GPIO_setDirectionMode (18u、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (18u、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (18u、GPIO_QUAL_ASYNC);
//
// SCI-B Tx 引脚(GPIO 18)的配置。
//
}
void SCI_A_init ()
{
//
//初始化 SCIA 及其 FIFO。
//
SCI_performSoftwareReset (SCIB_BASE);
//
//为回显配置 SCIA。
SCI_setConfig (SCIB_BASE、DEVICE_LSPCLK_FREQ、9600、(SCI_CONFIG_WLEN_8 |)
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_resetChannels (SCIB_BASE);
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_TXFF | SCI_INT_RXFF);
SCI_resetRxFIFO (SCIB_BASE);
SCI_resetTxFIFO (SCIB_BASE);
SCI_enableFIFO (SCIB_BASE);
SCI_enableModule (SCIB_BASE);
#ifdef 自动波特率
//
//执行自动波特锁定。
// SCI 需要使用'A'或'A'来锁定波特率。
//
SCI_lockAutobaud (SCIB_BASE);
#endif
}
//
//结束文件
//