1 Reply Latest reply on Feb 25, 2020 1:52 AM by YiZ_31

    如何同时使用UART和SPI?

    BiWa_410981

      我在初始化的时候启动了UART和SPI,并分别初始化。这时候,只有SPI可以正常工作。除非我在IO配置中的LPP模式指定CY_U3P_IO_MATRIX_LPP_UART_ONLY,才能从UART中发出数据。

      io_cfg.isDQ32Bit = CyFalse;

          io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;

          io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;

          io_cfg.useUart   = CyTrue;

          io_cfg.useI2C    = CyFalse;

          io_cfg.useI2S    = CyFalse;

          io_cfg.useSpi    = CyTrue;

          io_cfg.lppMode   = CY_U3P_IO_MATRIX_LPP_DEFAULT;

          /* No GPIOs are enabled. */

          io_cfg.gpioSimpleEn[0]  = 0;

          io_cfg.gpioSimpleEn[1]  = 0;

          io_cfg.gpioComplexEn[0] = 0;

          io_cfg.gpioComplexEn[1] = 0;

          status = CyU3PDeviceConfigureIOMatrix (&io_cfg);

      按以上设置只支持SPI

      io_cfg.isDQ32Bit = CyFalse;

          io_cfg.s0Mode = CY_U3P_SPORT_INACTIVE;

          io_cfg.s1Mode = CY_U3P_SPORT_INACTIVE;

          io_cfg.useUart   = CyTrue;

          io_cfg.useI2C    = CyFalse;

          io_cfg.useI2S    = CyFalse;

          io_cfg.useSpi    = CyTrue;

          io_cfg.lppMode   = CY_U3P_IO_MATRIX_LPP_UART_ONLY;

          /* No GPIOs are enabled. */

          io_cfg.gpioSimpleEn[0]  = 0;

          io_cfg.gpioSimpleEn[1]  = 0;

          io_cfg.gpioComplexEn[0] = 0;

          io_cfg.gpioComplexEn[1] = 0;

          status = CyU3PDeviceConfigureIOMatrix (&io_cfg);

      按以上设置UART可以正常。

      其他初始化和应用代码全都一样。

       

      我应该如何设置才能同时使用UART和SPI?