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系列。