cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX, SPI and assert

hbarta2
Associate III
Posted on April 09, 2015 at 14:30

This came up on the first code generation following the upgrade from 4.6/1.4 to 4.7/1.5. On subsequent code generation it did not happen so I thought it was an upgrade related glitch. However it returned on my most recent code generation. The problem seems to relate to not using CRC calculation. The generated code does not initialize the CRCPolynomial

/* SPI2 init function */
void MX_SPI2_Init(void)
{
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_64;
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi2.Init.TIMode = SPI_TIMODE_DISABLED;
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED;
HAL_SPI_Init(&hspi2);
}

However the parameter is checked later:

HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi)
{
/* Check the SPI handle allocation */
if(hspi == NULL)
{
return HAL_ERROR;
}
/* Check the parameters */
assert_param(IS_SPI_MODE(hspi->Init.Mode));
assert_param(IS_SPI_DIRECTION_MODE(hspi->Init.Direction));
assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize));
assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity));
assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase));
assert_param(IS_SPI_NSS(hspi->Init.NSS));
assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler));
assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit));
assert_param(IS_SPI_TIMODE(hspi->Init.TIMode));
assert_param(IS_SPI_CRC_CALCULATION(hspi->Init.CRCCalculation));
// assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial));

Note that I have commented the offending line. I did not check to see what was there when this did not crop up. #stm32cubemx-spi-crc-assert
1 REPLY 1
Amel NASRI
ST Employee
Posted on April 14, 2015 at 15:55

Hi HankB,

This issue will be fixed in CubeMX 4.8.

The issue number for follow-up in the release note file (http://www.st.com/st-web-ui/static/active/en/resource/technical/document/release_note/DM00107607.pdf) is 308956.

-Mayla-

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.