Skip to content

ch340g串口通信_FIFO

项目概述

DSC28034PNT是一款功能强大的数字信号控制器,而CH340G是一种常用的USB转串口芯片。在这个项目中,我们将探索如何使用DSC28034PNT和CH340G实现串口通信。串口通信是一种常见的数据传输方式,可用于在不同设备之间传输数据。

本项目旨在通过串口通信,实现DSC28034PNT与其他设备之间的数据交互。我们将使用CH340G作为USB转串口芯片,将DSC28034PNT与计算机或其他外部设备连接。通过串口通信,DSC28034PNT可以接收来自计算机或其他外部设备的命令和数据,并将其用于控制和操作。

软件调试

在软件调试阶段,我们将关注串口通信的数据传输和处理。首先,我们需要在DSC28034PNT上设置串口通信的相关参数,如波特率、数据位、停止位等。接下来,我们将编写适当的代码来初始化串口通信,并实现数据的发送和接收功能。我们将使用适当的调试工具来检查数据传输的正确性,并解决可能遇到的问题。

硬件接入

在硬件接入阶段,我们需要连接DSC28034PNT和CH340G,以便实现串口通信。首先,我们将连接CH340G的TX和RX引脚与DSC28034PNT的相应引脚,以实现数据的发送和接收。然后,我们将连接CH340G的USB接口与计算机或其他外部设备,以建立数据传输通道。

为确保稳定和可靠的硬件接入,我们需要注意正确连接引脚和检查电源供应,以避免电气问题和传输错误。

核心代码

C
/*主程序入口*/
int main(void)
{
 uint8 receiveData[4],i; //只接受4个字符,多余的补发

 /*初始化系统控制*/
 InitSysCtrl();

 /*初始化内存控制寄存器,使能内存流水线模式*/
 InitFlash();

 /*初始化串口通信的GPIO口*/
 /*GPIO28: SCIRXDA*/
 /*GPIO29: SCITXDA*/
 InitSciGpio();


 /*SCI寄存器配置*/
 Scia_Config(9600);

 /*通过SCI发送字符串*/
 Scia_Print("----------- serial fifo test ------------\r\n");
 Scia_Print("Baud Rate: 9600\r\n");
 Scia_Print("Data Bits: 8\r\n");
 Scia_Print("Parity:    none\r\n");
 Scia_Print("Stop Bits: 1\r\n");
 Scia_Print("\r\n");
 Scia_Print("I love H28034\r\n");

 for (;;)
 {
  /*判断SCI是否接收到数据*/
  if(SciaRegs.SCIFFRX.bit.RXFFST == 4)
  {
   for(i = 0; i < 4; i++)
   {
    receiveData[i] = SciaRegs.SCIRXBUF.bit.RXDT;
   }
   Scia_Print((char*)receiveData);
   Scia_Print("\r\n");
  }
 }

 return 0;
}

遇到问题

  • 再一次烧录,需要全部拆掉保持关闭电源,然后重新上电
  • 烧录完后没有自动运行主程序,需要手动按reset或者掉电才可以运行主程序

上述两个问题,怎么解决呢?特别是第一个问题,不要总是频繁掉电上电,损伤设备寿命。

总结

通过上述项目概述、软件调试和硬件接入,我们将能够成功实现DSC28034PNT和CH340G之间的串口通信。这将为我们提供一个强大的数据交互平台,为各种应用提供了广泛的可能性,如控制系统、数据采集和传感器网络等。我们将不断改进和优化这个项目,以满足不断增长的需求和应用场景。