zbber 发表于 2016-10-21 17:58:48

HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可

中山无雪 发表于 2016-10-21 23:39:44

初始化SPI有问题

ynwscfsfi 发表于 2016-10-22 00:20:17

解决了就好

andrewz 发表于 2016-10-23 11:40:13

应该是寄存器的问题.:D

snjeym 发表于 2016-10-23 18:59:44

zbber 发表于 2016-10-21 17:58
HAL库里接收发送函数里面有存储数组,你只需要根据参数要求定义好接收位置即可 ...

这个接收位置的定义指的是什么?看示波器图片上,MISO是有波形的,且CLK的第一、二边沿都有1信号存在,所以即使CLK的相位不正确的话,也应该有1的存在,不会一直是0呀?

snjeym 发表于 2016-10-23 19:00:49

中山无雪 发表于 2016-10-21 23:39
初始化SPI有问题

这个是CUBE自动生成的初始化函数:
/* SPI1 init function */
static void MX_SPI1_Init(void)
{

hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_128;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi1.Init.CRCPolynomial = 7;
hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
if (HAL_SPI_Init(&hspi1) != HAL_OK)
{
    Error_Handler();
}

}

snjeym 发表于 2016-10-23 19:03:26

andrewz 发表于 2016-10-23 11:40
应该是寄存器的问题.

可以给出具体的寄存器名称吗?hspi->Instance->DR这个吗?

asssdz-382474 发表于 2016-10-23 21:10:01

:):):):):):):):):):)

asssdz-382474 发表于 2016-10-23 21:27:24

:):):):):):):):):)

andrewz 发表于 2016-10-24 08:54:58

如果要看具体的寄存器,你首先得告诉我芯片是什么型号..
页: 1 2 [3] 4
查看完整版本: spi通信,一直接收不到数据