Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C STM32F4发现SPI_C_Stm32_Spi_Stm32f4 - Fatal编程技术网

C STM32F4发现SPI

C STM32F4发现SPI,c,stm32,spi,stm32f4,C,Stm32,Spi,Stm32f4,我必须使SPI通信在STM32F4发现板上工作。我已经用CubeMX配置了它。生成以下代码以配置SPI设备: hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.In

我必须使SPI通信在STM32F4发现板上工作。我已经用CubeMX配置了它。生成以下代码以配置SPI设备:

hspi2.Instance = SPI2;
hspi2.Init.Mode = SPI_MODE_MASTER;
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi2.Init.NSS = SPI_NSS_SOFT;
hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi2.Init.CRCPolynomial = 10;
我创建了一个通过SPI发送的数组,并使用HAL_SPI_Transmit_DMA函数发送它

uint8_t test[25] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0, 0xED};
HAL_SPI_Transmit_DMA(&hspi2, test, sizeof(test));
问题是,我没有从中得到正确的输出。我连接了一个范围到它,我只看到16个字节


这是我第一次使用stm32f4。我很难弄明白为什么它不起作用。我在互联网上搜索,发现STM32上的SPI存在更多问题。我还没有找到解决方案。

您看过RM吗?或者你相信HAL的“神奇”功能。在你接触任何硬件抽象库之前,先了解一下你的硬件。首先尝试使用寄存器,并了解当您的代码不完整时该外围设备如何工作;特别是,它似乎缺少一个
main()
函数和至少一个
#include
。请输入您的代码,使其成为您问题的一部分(包括任何必要的输入,但最好不需要任何输入),然后我们可以尝试复制并解决它。你也应该读。对不起。我的范围配置得不好。现在可以了。