[N32G430] N32 SPI驱动不了0.96tft屏幕(ST7735)

[复制链接]
 楼主| ZHI123456 发表于 2025-4-26 23:09 | 显示全部楼层 |阅读模式
    GPIO_InitStructure.Pin            = SPI_MASTER_MOSI_PIN | SPI_MASTER_CLK_PIN ;
    GPIO_InitStructure.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;
    GPIO_InitStructure.GPIO_Alternate = SPI_MASTER_GPIO_ALTERNATE;
    GPIO_Peripheral_Initialize(SPI_MASTER_GPIO, &GPIO_InitStructure);
    /* If CLKPOL is HIGH, set SPI_SCK GPIO to GPIO_PULL_UP, otherwise set to GPIO_PULL_DOWN */
    GPIO_InitStructure.Pin            = SPI_MASTER_CLK_PIN;
    GPIO_InitStructure.GPIO_Mode      = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Slew_Rate = GPIO_SLEW_RATE_FAST;
    GPIO_InitStructure.GPIO_Pull      = GPIO_PULL_UP;
    GPIO_InitStructure.GPIO_Alternate = SPI_MASTER_GPIO_ALTERNATE;
    GPIO_Peripheral_Initialize(SPI_MASTER_GPIO, &GPIO_InitStructure);

    SPI_Initializes_Structure(&SPI_InitStructure);
    SPI_InitStructure.DataDirection = SPI_DIR_SINGLELINE_TX;
    SPI_InitStructure.SpiMode       = SPI_MODE_MASTER;
    SPI_InitStructure.DataLen       = SPI_DATA_SIZE_8BITS;
    SPI_InitStructure.CLKPOL        = SPI_CLKPOL_HIGH;
    SPI_InitStructure.CLKPHA        = SPI_CLKPHA_SECOND_EDGE;
    SPI_InitStructure.NSS           = SPI_NSS_SOFT;
    /* It is recommended that the SPI master mode of the C version chips should not exceed 18MHz */
    SPI_InitStructure.BaudRatePres  = SPI_BR_PRESCALER_16;
    SPI_InitStructure.FirstBit      = SPI_FB_MSB;
    SPI_InitStructure.CRCPoly       = 7;
    SPI_Initializes(SPI_MASTER, &SPI_InitStructure);
    SPI_SS_Output_Enable(SPI_MASTER);



   
    /* Enable SPI_MASTER */
    SPI_ON(SPI_MASTER);

    RCC_Pclk2_Config(RCC_HCLK_DIV2);

    /* Enable peripheral clocks --------------------------------------------------*/
    /* spi clock enable */
    RCC_APB2_Peripheral_Clock_Enable(SPI_MASTER_PERIPH);
    /* GPIO Periph clock enable */
    RCC_AHB_Peripheral_Clock_Enable(SPI_MASTER_PERIPH_GPIO );




void LCD_Writ_Bus(u8 dat)
{       
//        u8 i;
//        LCD_CS_Clr();
//        for(i=0;i<8;i++)
//        {                          
//                LCD_SCLK_Clr();
//                if(dat&0x80)
//                {
//                   LCD_MOSI_Set();
//                }
//                else
//                {
//                   LCD_MOSI_Clr();
//                }
//                LCD_SCLK_Set();
//                dat<<=1;
//        }       
// LCD_CS_Set();       
              LCD_CS_Clr();
        //        LCD_CS_Set();       
             while (SPI_I2S_Flag_Status_Get(SPI1, SPI_I2S_FLAG_TE) == RESET);
        /* Send SPI_SLAVE data */
   SPI_I2S_Data_Transmit(SPI1,dat);
                                LCD_CS_Set();       
}
技术工程师 发表于 2025-5-9 13:51 | 显示全部楼层
SPI_BR_PRESCALER_16要不改小一些试下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

5

主题

8

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部