Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 6 | ||
---|---|---|---|
Line 580... | Line 580... | ||
580 | */ |
580 | */ |
581 | #define SPI_RESET_CRC(__HANDLE__) do{CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);\ |
581 | #define SPI_RESET_CRC(__HANDLE__) do{CLEAR_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);\ |
582 | SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);}while(0U) |
582 | SET_BIT((__HANDLE__)->Instance->CR1, SPI_CR1_CRCEN);}while(0U) |
583 | 583 | ||
584 | /** @brief Check whether the specified SPI flag is set or not. |
584 | /** @brief Check whether the specified SPI flag is set or not. |
585 | * @param __SR__ copy of SPI SR regsiter. |
585 | * @param __SR__ copy of SPI SR register. |
586 | * @param __FLAG__ specifies the flag to check. |
586 | * @param __FLAG__ specifies the flag to check. |
587 | * This parameter can be one of the following values: |
587 | * This parameter can be one of the following values: |
588 | * @arg SPI_FLAG_RXNE: Receive buffer not empty flag |
588 | * @arg SPI_FLAG_RXNE: Receive buffer not empty flag |
589 | * @arg SPI_FLAG_TXE: Transmit buffer empty flag |
589 | * @arg SPI_FLAG_TXE: Transmit buffer empty flag |
590 | * @arg SPI_FLAG_CRCERR: CRC error flag |
590 | * @arg SPI_FLAG_CRCERR: CRC error flag |
Line 594... | Line 594... | ||
594 | * @arg SPI_FLAG_FRE: Frame format error flag |
594 | * @arg SPI_FLAG_FRE: Frame format error flag |
595 | * @arg SPI_FLAG_FTLVL: SPI fifo transmission level |
595 | * @arg SPI_FLAG_FTLVL: SPI fifo transmission level |
596 | * @arg SPI_FLAG_FRLVL: SPI fifo reception level |
596 | * @arg SPI_FLAG_FRLVL: SPI fifo reception level |
597 | * @retval SET or RESET. |
597 | * @retval SET or RESET. |
598 | */ |
598 | */ |
599 | #define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == ((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET) |
599 | #define SPI_CHECK_FLAG(__SR__, __FLAG__) ((((__SR__) & ((__FLAG__) & SPI_FLAG_MASK)) == \ |
- | 600 | ((__FLAG__) & SPI_FLAG_MASK)) ? SET : RESET) |
|
600 | 601 | ||
601 | /** @brief Check whether the specified SPI Interrupt is set or not. |
602 | /** @brief Check whether the specified SPI Interrupt is set or not. |
602 | * @param __CR2__ copy of SPI CR2 regsiter. |
603 | * @param __CR2__ copy of SPI CR2 register. |
603 | * @param __INTERRUPT__ specifies the SPI interrupt source to check. |
604 | * @param __INTERRUPT__ specifies the SPI interrupt source to check. |
604 | * This parameter can be one of the following values: |
605 | * This parameter can be one of the following values: |
605 | * @arg SPI_IT_TXE: Tx buffer empty interrupt enable |
606 | * @arg SPI_IT_TXE: Tx buffer empty interrupt enable |
606 | * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable |
607 | * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable |
607 | * @arg SPI_IT_ERR: Error interrupt enable |
608 | * @arg SPI_IT_ERR: Error interrupt enable |
608 | * @retval SET or RESET. |
609 | * @retval SET or RESET. |
609 | */ |
610 | */ |
610 | #define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) |
611 | #define SPI_CHECK_IT_SOURCE(__CR2__, __INTERRUPT__) ((((__CR2__) & (__INTERRUPT__)) == \ |
- | 612 | (__INTERRUPT__)) ? SET : RESET) |
|
611 | 613 | ||
612 | /** @brief Checks if SPI Mode parameter is in allowed range. |
614 | /** @brief Checks if SPI Mode parameter is in allowed range. |
613 | * @param __MODE__ specifies the SPI Mode. |
615 | * @param __MODE__ specifies the SPI Mode. |
614 | * This parameter can be a value of @ref SPI_Mode |
616 | * This parameter can be a value of @ref SPI_Mode |
615 | * @retval None |
617 | * @retval None |
616 | */ |
618 | */ |
617 | #define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \ |
619 | #define IS_SPI_MODE(__MODE__) (((__MODE__) == SPI_MODE_SLAVE) || \ |
618 | ((__MODE__) == SPI_MODE_MASTER)) |
620 | ((__MODE__) == SPI_MODE_MASTER)) |
619 | 621 | ||
620 | /** @brief Checks if SPI Direction Mode parameter is in allowed range. |
622 | /** @brief Checks if SPI Direction Mode parameter is in allowed range. |
621 | * @param __MODE__ specifies the SPI Direction Mode. |
623 | * @param __MODE__ specifies the SPI Direction Mode. |
622 | * This parameter can be a value of @ref SPI_Direction |
624 | * This parameter can be a value of @ref SPI_Direction |
623 | * @retval None |
625 | * @retval None |
Line 661... | Line 663... | ||
661 | /** @brief Checks if SPI Serial clock steady state parameter is in allowed range. |
663 | /** @brief Checks if SPI Serial clock steady state parameter is in allowed range. |
662 | * @param __CPOL__ specifies the SPI serial clock steady state. |
664 | * @param __CPOL__ specifies the SPI serial clock steady state. |
663 | * This parameter can be a value of @ref SPI_Clock_Polarity |
665 | * This parameter can be a value of @ref SPI_Clock_Polarity |
664 | * @retval None |
666 | * @retval None |
665 | */ |
667 | */ |
666 | #define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \ |
668 | #define IS_SPI_CPOL(__CPOL__) (((__CPOL__) == SPI_POLARITY_LOW) || \ |
667 | ((__CPOL__) == SPI_POLARITY_HIGH)) |
669 | ((__CPOL__) == SPI_POLARITY_HIGH)) |
668 | 670 | ||
669 | /** @brief Checks if SPI Clock Phase parameter is in allowed range. |
671 | /** @brief Checks if SPI Clock Phase parameter is in allowed range. |
670 | * @param __CPHA__ specifies the SPI Clock Phase. |
672 | * @param __CPHA__ specifies the SPI Clock Phase. |
671 | * This parameter can be a value of @ref SPI_Clock_Phase |
673 | * This parameter can be a value of @ref SPI_Clock_Phase |
672 | * @retval None |
674 | * @retval None |
673 | */ |
675 | */ |
674 | #define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \ |
676 | #define IS_SPI_CPHA(__CPHA__) (((__CPHA__) == SPI_PHASE_1EDGE) || \ |
675 | ((__CPHA__) == SPI_PHASE_2EDGE)) |
677 | ((__CPHA__) == SPI_PHASE_2EDGE)) |
676 | 678 | ||
677 | /** @brief Checks if SPI Slave Select parameter is in allowed range. |
679 | /** @brief Checks if SPI Slave Select parameter is in allowed range. |
678 | * @param __NSS__ specifies the SPI Slave Select management parameter. |
680 | * @param __NSS__ specifies the SPI Slave Select management parameter. |
679 | * This parameter can be a value of @ref SPI_Slave_Select_management |
681 | * This parameter can be a value of @ref SPI_Slave_Select_management |
680 | * @retval None |
682 | * @retval None |
681 | */ |
683 | */ |
682 | #define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \ |
684 | #define IS_SPI_NSS(__NSS__) (((__NSS__) == SPI_NSS_SOFT) || \ |
683 | ((__NSS__) == SPI_NSS_HARD_INPUT) || \ |
685 | ((__NSS__) == SPI_NSS_HARD_INPUT) || \ |
684 | ((__NSS__) == SPI_NSS_HARD_OUTPUT)) |
686 | ((__NSS__) == SPI_NSS_HARD_OUTPUT)) |
685 | 687 | ||
686 | /** @brief Checks if SPI NSS Pulse parameter is in allowed range. |
688 | /** @brief Checks if SPI NSS Pulse parameter is in allowed range. |
687 | * @param __NSSP__ specifies the SPI NSS Pulse Mode parameter. |
689 | * @param __NSSP__ specifies the SPI NSS Pulse Mode parameter. |
688 | * This parameter can be a value of @ref SPI_NSSP_Mode |
690 | * This parameter can be a value of @ref SPI_NSSP_Mode |
689 | * @retval None |
691 | * @retval None |
690 | */ |
692 | */ |
691 | #define IS_SPI_NSSP(__NSSP__) (((__NSSP__) == SPI_NSS_PULSE_ENABLE) || \ |
693 | #define IS_SPI_NSSP(__NSSP__) (((__NSSP__) == SPI_NSS_PULSE_ENABLE) || \ |
692 | ((__NSSP__) == SPI_NSS_PULSE_DISABLE)) |
694 | ((__NSSP__) == SPI_NSS_PULSE_DISABLE)) |
693 | 695 | ||
694 | /** @brief Checks if SPI Baudrate prescaler parameter is in allowed range. |
696 | /** @brief Checks if SPI Baudrate prescaler parameter is in allowed range. |
695 | * @param __PRESCALER__ specifies the SPI Baudrate prescaler. |
697 | * @param __PRESCALER__ specifies the SPI Baudrate prescaler. |
696 | * This parameter can be a value of @ref SPI_BaudRate_Prescaler |
698 | * This parameter can be a value of @ref SPI_BaudRate_Prescaler |
697 | * @retval None |
699 | * @retval None |
Line 708... | Line 710... | ||
708 | /** @brief Checks if SPI MSB LSB transmission parameter is in allowed range. |
710 | /** @brief Checks if SPI MSB LSB transmission parameter is in allowed range. |
709 | * @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit). |
711 | * @param __BIT__ specifies the SPI MSB LSB transmission (whether data transfer starts from MSB or LSB bit). |
710 | * This parameter can be a value of @ref SPI_MSB_LSB_transmission |
712 | * This parameter can be a value of @ref SPI_MSB_LSB_transmission |
711 | * @retval None |
713 | * @retval None |
712 | */ |
714 | */ |
713 | #define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \ |
715 | #define IS_SPI_FIRST_BIT(__BIT__) (((__BIT__) == SPI_FIRSTBIT_MSB) || \ |
714 | ((__BIT__) == SPI_FIRSTBIT_LSB)) |
716 | ((__BIT__) == SPI_FIRSTBIT_LSB)) |
715 | 717 | ||
716 | /** @brief Checks if SPI TI mode parameter is in allowed range. |
718 | /** @brief Checks if SPI TI mode parameter is in allowed range. |
717 | * @param __MODE__ specifies the SPI TI mode. |
719 | * @param __MODE__ specifies the SPI TI mode. |
718 | * This parameter can be a value of @ref SPI_TI_mode |
720 | * This parameter can be a value of @ref SPI_TI_mode |
719 | * @retval None |
721 | * @retval None |
720 | */ |
722 | */ |
721 | #define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \ |
723 | #define IS_SPI_TIMODE(__MODE__) (((__MODE__) == SPI_TIMODE_DISABLE) || \ |
722 | ((__MODE__) == SPI_TIMODE_ENABLE)) |
724 | ((__MODE__) == SPI_TIMODE_ENABLE)) |
723 | 725 | ||
724 | /** @brief Checks if SPI CRC calculation enabled state is in allowed range. |
726 | /** @brief Checks if SPI CRC calculation enabled state is in allowed range. |
725 | * @param __CALCULATION__ specifies the SPI CRC calculation enable state. |
727 | * @param __CALCULATION__ specifies the SPI CRC calculation enable state. |
726 | * This parameter can be a value of @ref SPI_CRC_Calculation |
728 | * This parameter can be a value of @ref SPI_CRC_Calculation |
727 | * @retval None |
729 | * @retval None |
Line 732... | Line 734... | ||
732 | /** @brief Checks if SPI CRC length is in allowed range. |
734 | /** @brief Checks if SPI CRC length is in allowed range. |
733 | * @param __LENGTH__ specifies the SPI CRC length. |
735 | * @param __LENGTH__ specifies the SPI CRC length. |
734 | * This parameter can be a value of @ref SPI_CRC_length |
736 | * This parameter can be a value of @ref SPI_CRC_length |
735 | * @retval None |
737 | * @retval None |
736 | */ |
738 | */ |
737 | #define IS_SPI_CRC_LENGTH(__LENGTH__) (((__LENGTH__) == SPI_CRC_LENGTH_DATASIZE) ||\ |
739 | #define IS_SPI_CRC_LENGTH(__LENGTH__) (((__LENGTH__) == SPI_CRC_LENGTH_DATASIZE) || \ |
738 | ((__LENGTH__) == SPI_CRC_LENGTH_8BIT) || \ |
740 | ((__LENGTH__) == SPI_CRC_LENGTH_8BIT) || \ |
739 | ((__LENGTH__) == SPI_CRC_LENGTH_16BIT)) |
741 | ((__LENGTH__) == SPI_CRC_LENGTH_16BIT)) |
740 | 742 | ||
741 | /** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range. |
743 | /** @brief Checks if SPI polynomial value to be used for the CRC calculation, is in allowed range. |
742 | * @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation. |
744 | * @param __POLYNOMIAL__ specifies the SPI polynomial value to be used for the CRC calculation. |
743 | * This parameter must be a number between Min_Data = 0 and Max_Data = 65535 |
745 | * This parameter must be a number between Min_Data = 0 and Max_Data = 65535 |
744 | * @retval None |
746 | * @retval None |
745 | */ |
747 | */ |
746 | #define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && ((__POLYNOMIAL__) <= 0xFFFFU) && (((__POLYNOMIAL__)&0x1U) != 0U)) |
748 | #define IS_SPI_CRC_POLYNOMIAL(__POLYNOMIAL__) (((__POLYNOMIAL__) >= 0x1U) && \ |
- | 749 | ((__POLYNOMIAL__) <= 0xFFFFU) && \ |
|
- | 750 | (((__POLYNOMIAL__)&0x1U) != 0U)) |
|
747 | 751 | ||
748 | /** @brief Checks if DMA handle is valid. |
752 | /** @brief Checks if DMA handle is valid. |
749 | * @param __HANDLE__ specifies a DMA Handle. |
753 | * @param __HANDLE__ specifies a DMA Handle. |
750 | * @retval None |
754 | * @retval None |
751 | */ |
755 | */ |
752 | #define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL) |
756 | #define IS_SPI_DMA_HANDLE(__HANDLE__) ((__HANDLE__) != NULL) |
753 | 757 | ||
754 | /** @brief Checks if a data address is 16bit aligned. |
- | |
755 | * @param __DATA__ specifies a data address. |
- | |
756 | * @retval None |
- | |
757 | */ |
- | |
758 | #define IS_SPI_16BIT_ALIGNED_ADDRESS(__DATA__) (((uint32_t)(__DATA__) % 2U) == 0U) |
- | |
759 | - | ||
760 | /** |
758 | /** |
761 | * @} |
759 | * @} |
762 | */ |
760 | */ |
763 | 761 | ||
764 | /* Include SPI HAL Extended module */ |
762 | /* Include SPI HAL Extended module */ |