CH32V203硬件SPI问题

硬件SPI时钟不输出,没有波形,请问大家怎么解决(附上初始化代码)

GPIO_InitTypeDef GPIO_InitStructure={0};

    SPI_InitTypeDef SPI_InitStructure={0};


    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_SPI1, ENABLE );


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_Init( GPIOA, &GPIO_InitStructure );


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

//    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init( GPIOA, &GPIO_InitStructure );


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_Init( GPIOA, &GPIO_InitStructure );


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init( GPIOA, &GPIO_InitStructure );


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

    GPIO_Init( GPIOB, &GPIO_InitStructure );


    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;

    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;


    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;

    SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;

    SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;

    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

    SPI_InitStructure.SPI_CRCPolynomial = 10;

    SPI_Init( SPI1, &SPI_InitStructure );



    SPI_Cmd( SPI1, ENABLE );


您好,单看初始化应该是没问题的,注意PA5 的GPIO配置,建议取消对速度配置的注释。注意查看一下程序中的SPI发送和接收函数是否有问题。在MCU对应的EVT中有SPI相关的例程,可以参考一下,CH32V203 EVT下载链接如下。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。此外,注意一下工程文件的配置,根据具体型号进行配置,如下图2

/downloads/CH32V20xEVT_ZIP.html

image.png

图1

image.png

图2


最后手写了软件SPI,硬件SPI可以看到波形,但就是不好使,不知道为啥


您好,关于硬件SPI使用遇到相关问题,可以和我(lzs@wch.cn)沟通,这边会帮你解决,若需要相关参考例程,这边也可以提供


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