CH32V203 SPI的NSS是不是不能做主机片选使用?

我按如下配置了SPI1主机,NSS配置硬件控制,发送数据的时候用示波器监测没看到NSS拉低,NSS不能当片选用吗?

void SPI1_Init()
{
    GPIO_InitTypeDef GPIO_InitStructure;
    SPI_InitTypeDef  SPI_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//GPIO_Mode_IPU
    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);

    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_Hard;//
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
    SPI_InitStructure.SPI_CRCPolynomial = 7;
    SPI_Init(SPI1, &SPI_InitStructure);

    SPI_SSOutputCmd(SPI1, DISABLE);

    SPI_Cmd(SPI1, ENABLE);
}


您好,使用主机片选选择从机时,主机可以配置任一GPIO引脚作为CS引脚,在初始化时配置为推挽输出,在选择从机时将该引脚拉低即可,因此主机使用片选时要在程序中配置拉低片选引脚选择从机,如下图

image.png


这个我知道,但是我问的是NSS能否作为主机片选使用。


您好,通常都是主机选择从机通信吧,没有主机片选这种说法,后面若有问题,可通过邮箱(lzs@wch.cn)沟通


以这个图为例,CH32V203 SPI主机 NSS配置为硬件控制   能不能充当SPI_CS使用?image.png


您好,若你是用该引脚作为控制选择从机的片选脚,可以使用该引脚


楼主解决问题了吗


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