snjeym 发表于 2016-10-24 10:07:37

andrewz 发表于 2016-10-24 08:54
如果要看具体的寄存器,你首先得告诉我芯片是什么型号..

不好意思,我的片子是stm32L476

andrewz 发表于 2016-10-24 10:15:18

snjeym 发表于 2016-10-24 10:07
不好意思,我的片子是stm32L476

你的NSS置位了没?软件设置它始终为master.

andrewz 发表于 2016-10-24 12:21:07

SPI很简单的,给你贴一个我现在用的.

void Spi_init(SPI_TypeDef *p){
    RCC->APB2ENR|=RCC_APB2ENR_IOPAEN|RCC_APB2ENR_SPI1EN;
    GPIOA->CRL&=0x0000FFFF;                     //PA4 CS    /5 CLK      /6 MISO   /7 MOSI SPI.
    GPIOA->CRL|=0xB8B30000;                     //PA4 CS O/5 CLK AFO/6 MISO AFI /7 MOSI AFO.
    GPIOA->ODR|=GPIO_ODR_ODR4|GPIO_ODR_ODR5|GPIO_ODR_ODR6|GPIO_ODR_ODR7;    //CS H/MISO H.
    p->CR1|=SPI_CR1_MSTR;                     //master configuration.
    p->CR1|=SPI_CR1_DFF;                        //16-bit data frame format.
    p->CR1|=SPI_CR1_CPHA;                     //CPOL=0 CPHA=1. mode 1.
    p->CR1|=SPI_CR1_BR_1;                     //f_PCLK/8=9MHz.
    p->CR1|=SPI_CR1_SPE|SPI_CR1_SSM|SPI_CR1_SSI;//enable spi.
}

snjeym 发表于 2016-10-25 22:35:28

问题已经解决,是cube设置的时候设置成了实验用的单发模式,后来改变后应该是没有更新工程,所以造成了stm32l4xx_hal_msp.c这个函数配置有问题,改正后正常。

snjeym 发表于 2016-10-25 22:35:43

问题已经解决,是cube设置的时候设置成了实验用的单发模式,后来改变后应该是没有更新工程,所以造成了stm32l4xx_hal_msp.c这个函数配置有问题,改正后正常。

nidayededaye 发表于 2020-7-31 08:52:49

snjeym 发表于 2016-10-25 22:35
问题已经解决,是cube设置的时候设置成了实验用的单发模式,后来改变后应该是没有更新工程,所以造成了stm3 ...

我也遇到了spi不能通信的问题,想问一下这个单发模式在cube的哪个位置设置,我想检查一下自己的是不是也设置了。芯片用的也是L系列。
页: 1 2 3 [4]
查看完整版本: spi通信,一直接收不到数据