ch32v003 spi 驱动st7735s失败

软件模拟能驱动  但是换成硬件spi
就不行  spi初始化和103上一模一样,103就可以,003就不行


 引脚设置:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init( GPIOC, &GPIO_InitStructure );
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init( GPIOC, &GPIO_InitStructure );
   GPIO_SetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_6);
   引脚模式推挽输出,复用都试过 没用;
   
   spi初始化,
   void lcd_spi_init(void)
{
    SPI_InitTypeDef  SPI_InitStructure = {0};

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_SPI1, ENABLE);


    SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;//串行同步时钟空闲时SCLK位高电平
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;//串行同步时钟空第二个时钟沿捕获
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
    //SPI_InitStructure.SPI_CRCPolynomial = 7;
    SPI_Init(SPI1, &SPI_InitStructure);
    SPI_Cmd(SPI1, ENABLE);


}

您好,程序中注意要使能开启引脚时钟,此外,SCK引脚以及MOSI引脚都需要配置为复用推挽输出模式,如下图。在CH32V003 EVT中有SPI单线发送模式的例程,你可以参考一下。EVT下载链接如下。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通,若方便,可将工程发至我的邮箱,这边具体看一下。

https://www.wch.cn/downloads/CH32V003EVT_ZIP.html

image.png


不行的 ,容易出错的我都试过了,同样的接线换成模拟spi就可以,硬件spi驱动不了,邮件发给你了。


您好,已邮件回复你,可按邮件回复试一下,后续这边可以提供一个使用CH32V003 SPI驱屏的例程发你参考一下。


只有登录才能回复,可以选择微信账号登录